首页 > 其他分享 >WPS SDK打开文档并实现保存回传

WPS SDK打开文档并实现保存回传

时间:2024-03-19 10:33:19浏览次数:29  
标签:打开文档 bundle WPS fileApi 文档 回传 Android SDK

需求场景

在项目开发中会碰到需要调用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二次开发集成申请
邮件发送: [email protected]
邮件内容
请明确包含申请项目背景规模、集成应用第三方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打开文档,进行文档编辑并监听保存完成后的文档回传给第三方应用的功能完成,是不是超级简单。如果此文对您有帮助,欢迎一键三连

标签:打开文档,bundle,WPS,fileApi,文档,回传,Android,SDK
From: https://blog.csdn.net/weixin_43880576/article/details/136834381

相关文章

  • wps/word文档自动编号
    WPS教程系列1——设置章节多级标题自动编号(无敌详细,手把手教程)_wps多级标题自动编号-CSDN博客WordWPS标题二编号未跟随一级标题_wps二级编号不跟随一级编号变化-CSDN博客如果“在其后重新开始编号”不起作用,解决办法是在设计编号级别的时候需要一次性设置所有等级的编号,比如......
  • WPS JS生成透视表范例
    //生成透视表 Sheets.Add(undefined,undefined,undefined,undefined); ActiveSheet.Name="数据透视"; Sheets.Item("订单明细").Select(); varReport=ActiveSheet.Name; Range("A1:BO"+a).Select(); Selection.Activate();letpvt2cache=ActiveWork......
  • 「Ubuntu使用」Ubuntu下安装wps及缺少字体如何处理?
    注:此文参考CSDN链接:https://blog.csdn.net/u010164190/article/details/127272815微软Office没有Linux版,好在Wps有Linux版本,除了宏不能使用以外,使用起来基本没什么问题。但安装完成后会提示缺失字体,这些字体是Windows自带的字体,在Windows环境不会有问题,但在Ubuntu系统下会提示。......
  • WPS正文自动识别成目录修改
    原因是正文部分的大纲级别不是正文文本1、在正文格式段落中将大纲级别修改成正文文本;2、点击智能识别的导航窗格目录,点击已经修正的正文格式即可。......
  • WPS 两个表格数据列 比对是否存在
    两个表格数据列比对是否存在  当前表=IFERROR(VLOOKUP(B2,'[服务订单202306-202402.xlsx]Sheet1'!$A$1:$A$594500,1,FALSE),"不存在")跨表格比对是否存在,  B列数据不在A列中 结果输出D列比对后筛选D列 输入不存在就显示数据了   第二个两个表格数据更......
  • 从WPS AI摘下来的比较实用的办公指令
    分类名称简介prompt职场办公工作计划根据岗位及工作要求,生成工作计划现在你扮演一位职场办公人员,我请你帮我写一个[第三季度]的工作计划,目标是[完成测试用例管理后台及至少三个通用的重要业务自动测试脚本]。你的计划需要包括以下要点:工作目标、工作任务、所需资源、......
  • WPS编辑的文档,用office打开很多内容不显示
    原文链接:https://wenda.so.com/q/1483656327728206?src=180&q=WPS%E7%BC%96%E8%BE%91%E7%9A%84%E6%96%87%E6%A1%A3%EF%BC%8C%E7%94%A8office%E6%89%93%E5%BC%80%E5%BE%88%E5%A4%9A%E5%86%85%E5%AE%B9%E4%B8%8D%E6%98%BE%E7%A4%BA版本兼容性问题,朋友建议我另存为pdf格式文档。网......
  • WPS JS 宏根据单元格内容填充颜色
    WPSJS宏根据单元格内容填充颜色直接上代码/***Macro1Macro*宏由Steven录制,时间:2024/01/30*/functionSetCellColorsBYMacro(){ //获取表格的行数和列数varrowCount=48;varcolAll=['A','B','C','D','E',&......
  • [word] WPS 如何在 word 里调整横向文字间距
    今天教大家一个小技巧,如何在Word里调整横向文字间距。第1步先选中要调整间距的文字,具体操作如下图所示: ......
  • OnlyOffice 打开文档时提示下载失败
    现象:使用内网地址访问onlyoffice时,文档提示下载失败,如图:问题定位:使用内部ip地址访问后端服务查看OnlyOfficeConverter的日志:dockerlogs-f容器名发现日志文件中存在如下报错:Error:DNSlookupxxx.xxx.xxx.xx(family:undefined,host:undefined)isnotallowed.Because,......