WPS二次开发系列:WPS SDK事件回调

作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(WPS二次开发QQ群:628436767),摸鱼吹牛嗨起来!

目录

[1.什么是WPS SDK事件回调](#1.什么是WPS SDK事件回调)

[2.WPS SDK 事件回调类型](#2.WPS SDK 事件回调类型)

3.通用事件回调

[4. 使用参考:](#4. 使用参考:)

[4.1 文档保存完成事件回调](#4.1 文档保存完成事件回调)

[4.2 文档关闭完成事件回调](#4.2 文档关闭完成事件回调)

[4.3 通用事件通知使用注意事项](#4.3 通用事件通知使用注意事项)

5、文档对象事件回调


1.什么是WPS SDK事件回调

第三方应用通过注册SDK事件回调接口后能够收到WPS应用程序传递给第三方应用的状态信息通知,同时结合自己的需求就可以实现需求闭环。

2.WPS SDK 事件回调类型

WPS 事件回调分成两种:

3.通用事件回调

通用事件回调由基础文档服务接口(FileApi)提供,支持Android全端(个人版,专业版)

通用事件列表

|---------------------|---------------|-------------|----------|-------------|
| 事件名称 | 平台 | 级别 | 事件类型 | 说明 |
| DocumentAfterSave | Android WPS全端 | Application | 通知型 | 当文档保存结束后被触发 |
| DocumentAfterClose | Android WPS全端 | Application | 通知型 | 当文档关闭结束后被触发 |

详细事件参考:ApiEvent

4. 使用参考:

4.1 文档保存完成事件回调

java 复制代码
//1.获取FileApi服务
FileApi fileApi = WpsSdk.getInstance().getApi(FileApi.class);
// 2. 添加事件监听, 注意添加事件要在调用打开文档接口之前调用if (fileApi != null) {
   fileApi.addEventListener(DemoAtvity.this, ApiEvent.DocumentAfterSave, new EventListener() {
              @OverridepublicvoidonEvent(String s, Bundle bundle){
                  Log.d("WpsSdk", "demo onEvent: s=" + s + " bundle=" + bundle);
              }
          });
    //3. 调用打开文档接口           
   fileApi.openFile(XXXAtvity.this, fileUri, bundle);
 }

4.2 文档关闭完成事件回调

java 复制代码
FileApi fileApi = WpsSdk.getInstance().getApi(FileApi.class);
if (fileApi != null) {
    fileApi.addEventListener(SingleOpenActivity.this, ApiEvent.DocumentAfterClose, new EventListener() {
        @Override
        public void onEvent(String s, Bundle bundle) {
            String path = bundle.getString("CurrentPath");
            Log.d("WpsSdk", "demo onEvent DocumentAfterClose : s=" + s + " bundle=" + bundle + " path=" + path);
        }
    });
    fileApi.openFile(this, fieUri, bundle);
}

4.3 通用事件通知使用注意事项

  • 注册事件需要再调用 fileApi.openFile(xx)方法之前使用
  • 通用事件仅支持文档文档打开后的事件通知

5、文档对象事件回调

这个是高阶能力,主要针对WPS专业版,个人版不支持,这里暂不详细介绍

相关推荐
隔窗听雨眠27 分钟前
ORM框架选型指南:MyBatis与Hibernate的全面对比
java·开发语言·数据库
庖丁AI30 分钟前
PDF解析工具怎么选?OCR、表格提取和结构化输出有什么区别
人工智能·pdf·ocr
赏金术士31 分钟前
Android 组件化学习项目(Kotlin + AGP8+)
android·学习·kotlin
Bigger33 分钟前
mini-cc 终端 UI:用 React 写 CLI 是什么体验
前端·react.js·ai编程
j7~34 分钟前
【C++】类和对象(上)--带你全面理解类和对象的概念,以及this指针的理解和相关面试题
java·开发语言·封装·this指针·类的实例化·访问限定符·类的命名
于先生吖36 分钟前
同城物流创业项目,Java源码搭建多车型搬家拉货、就近配货预约小程序
java·开发语言·小程序
码不停蹄的玄黓37 分钟前
Java 异常分类
java·开发语言
在水一缸39 分钟前
警惕供应链陷阱:从 Red Hat npm 恶意包事件看依赖安全防护
前端·安全·npm·供应链安全·red hat·恶意包·依赖安全
江湖中的阿龙41 分钟前
23种设计模式
java·开发语言·设计模式
可可嘻嘻大老虎43 分钟前
SpringBoot拦截器防重复提交实战
java·spring boot·后端