android 调用wps打开文档并感知保存事件

需求场景

在项目开发中会碰到需要调用WPS打开Word,Excel,Ppt等Office系列文档的情况,网上目前少有正式介绍如何调用相关API打开文档,并实现文档编辑后回传给三方应用,本人在逛WPS社区时发现

解锁WPS二次开发新世界:Android开发用户专属极速接入秘籍!通过此文介绍的WPS-SDK相关API文档完美实现的从第三方用于调研API打开WPS进行文档编辑保存后并将文档保存结果回传给第三方的功能。

效果展示

3、实现步骤

3.1 步骤一、申请WPS-SDK集成资源及对接Demo

通过邮件申请:

邮件模板:
发起人 :有需要申请接入WPS移动端的企业或者个人
邮件主题: XXX公司XXX项目---WPS Android端 SDK二次开发集成申请
邮件发送: m_open_sdk@wps.cn
邮件内容
请明确包含申请项目背景规模、集成应用第三方APP包名,具体需求 ******、******集成周期等

3.2 步骤二、开始集成

3.2.1.添加依赖库

将WPS提供集成资源压缩包里面libs相关的aar文件集成到自己的工程中

3.2.2.SDK初始化

在自己工程Application的onCreate方法中调用SDK的初始化Api, 参考如下

复制代码
SdkConfig config = new SdkConfig.Builder()
   //开启日志开关
      .setEnableDebug(true)
      .build();
//初始化
WpsSdk.getInstance().init(this,config);

3.2.3 调用API打开文档(单开)

PS: 打开:一次打开一个文档

参考示例代码

复制代码
//1.------------ 将filePath 转换成FileUri----------
String filePath = "/storage/emulated/0/Android/data/cn.wps.sdk.demo/files/document/123.docx";
Uri fileUri; // Android 7.0(包含)之后使用FileProvider,之前使用file协议
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
// File转化为FileProvider类型的Uri,对应FileProvider名字必须AndroidManifest.xml中定义匹配
  fileUri = FileProvider.getUriForFile(context, getPackageName() + ".fileprovider",     new File(filePath));
  } else{
      fileUri = Uri.fromFile(filePath);
  }
//2.------------ 调用WPS SDK 相关接口打开文档----------       
FileApi fileApi = WpsSdk.getInstance().getService(FileApi.class);
if (FileApi != null) {
    fileApi.openFile(context, fileUri);
}

代码补充说明:

  • 详细fileuri介绍请参考FileUri授权
  • 详细代码请参考Demo中的cn.wps.sdk.demo.activity.SingleOpenActivity#openFile

3.2.4. 完成文档保存事件监听

WPS SDK 提供了保存完成回调通知 能力,通过保存完成事件通知,第三方应用可以监听到WPS端保存完成事件回调然后执行相应的业务逻辑(如上传文件到第三方服务器)。

复制代码
FileApi fileApi = WpsSdk.getInstance().getApi(FileApi.class);
if (fileApi != null) {
    fileApi.addEventListener(SingleOpenActivity.this, ApiEvent.DocumentAfterSave, new EventListener() {
        @Override
        public void onEvent(String eventName, Bundle bundle) {
           String path = bundle.getString("CurrentPath");
            //注意在高版本Android系统中,第三方应用是无法读取WPS私有路径,需要通过获取WPS提供的URI来访问文档数据
            Uri currentFileUri = bundle.getParcelable("CurrentFileUri");
            Log.d("WpsSdk", "demo onEvent DocumentAfterSave : s=" + s + " bundle=" + bundle + " path=" + path+ " currentFileUri="+currentFileUri);
            Utils.showToast(SingleOpenActivity.this, "文档保持路径:" + currentFileUri);
        }
    });
    //注意在调用文档打开之前进行注册
    fileApi.openFile(this, fileUri, bundle);
}

至此一个第三方应用调用WPS打开文档,进行文档编辑并监听保存完成后的文档回传给第三方应用的功能完成,是不是超级简单。如果此文对您有帮助,欢迎一键三连💪

相关推荐
Yang-Never2 小时前
Kotlin协程 -> Job.join() 完整流程图与核心源码分析
android·开发语言·kotlin·android studio
CodeCraft Studio6 小时前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换
一笑的小酒馆7 小时前
Android性能优化之截屏时黑屏卡顿问题
android
ONLYOFFICE7 小时前
【技术教程】如何将ONLYOFFICE文档集成到使用Spring Boot框架编写的Java Web应用程序中
java·spring boot·编辑器
懒人村杂货铺10 小时前
Android BLE 扫描完整实战
android
揭老师高效办公10 小时前
在Word和WPS文字中将手机中间4位替换为星号****
word·wps文字
Blue桃之夭夭10 小时前
Visual Studio Code设置个性化背景教程
ide·vscode·编辑器
TeleostNaCl12 小时前
如何安装 Google 通用的驱动以便使用 ADB 和 Fastboot 调试(Bootloader)设备
android·经验分享·adb·android studio·android-studio·android runtime
fatiaozhang952713 小时前
中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
android·网络·电脑·电视盒子·刷机固件·机顶盒刷机
2501_9159184114 小时前
iOS 开发全流程实战 基于 uni-app 的 iOS 应用开发、打包、测试与上架流程详解
android·ios·小程序·https·uni-app·iphone·webview