作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397)
目录
需求场景
效果展示
3、实现步骤
3.1 步骤一、申请WPS-SDK集成资源及对接Demo
3.2 步骤二、开始集成
3.2.1.添加依赖库
3.2.2.SDK初始化
3.2.3 调用API打开文档(单开)
需求场景
在项目开发中会碰到需要在自己的应用中(OA系统)调用WPS打开Word,Excel,Ppt等Office系列文档(文档是在线的,只有文档链接)的情况,此文介绍了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: 打开:一次打开一个文档
参考示例代码
private void openFromUrl() {
String url = "http://xxx:8080/OADemo/file/欢迎使用WPS Office.docx";
FileApi fileApi = WpsSdk.getInstance().getApi(FileApi.class);
if (fileApi != null) {
Uri uri = Uri.parse(url);
fileApi.addEventListener(MainActivity.this, ApiEvent.DocumentAfterSave,new EventListener(){
@Override
public void onEvent(String s, 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);
Toast.makeText(MainActivity.this, "currentFileUri="+currentFileUri, Toast.LENGTH_SHORT).show();
}
});
fileApi.openFile(MainActivity.this,uri);
}
}
3.2.4. 完成文档保存事件监听
WPS SDK 提供了保存完成回调通知 能力,通过保存完成事件通知,第三方应用可以监听到WPS端保存完成事件回调然后执行相应的业务逻辑(如上传文件到第三方服务器)。
FileApi fileApi = WpsSdk.getInstance().getApi(FileApi.class);
if (fileApi != null) {
Uri uri = Uri.parse(url);
fileApi.addEventListener(MainActivity.this, ApiEvent.DocumentAfterSave,new EventListener(){
@Override
public void onEvent(String s, 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);
//TODO 上传到第三方应用服务器(文件服务器)
uploadFile(currentFileUri);
}
});
fileApi.openFile(MainActivity.this,uri);
}
至此一个第三方应用调用WPS打开在线文档,进行文档编辑并监听保存完成后的文档回传给第三方应用的功能完成,是不是超级简单。如果此文对您有帮助,欢迎一键三连💪
更多请参考:解锁WPS二次开发新世界:Android开发用户专属极速接入秘籍!