logo资料库

WPS Android调用API.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
一、WPS Office API简介
二、第三方启动方式
1.方式简介
2.参数介绍
(1)打开模式参数列表
(2)文档打开参数列表
包名类名相关参数
(3)广播事件
3.示例代码
三、AIDL方式
1.方式简介
2.AIDL操作实现
3.AIDL接口介绍
(1)获得和打开文档接口
(2)Document对象调用接口
(3)选区的操作接口
(4)嵌入式对象的操作接口
(5)对象的操作接口
WPS Android 版 API 使用手册 V5.6 文档版本:1.0 更新日期:2014-01-13
目 录 一、WPS Office API 简介 .................................................................................................................. 3 二、第三方启动方式.............................................................................................................................3 1.方式简介 ..................................................................................................................................... 3 2.参数介绍 ..................................................................................................................................... 3 (1)打开模式参数列表.................................................................................................... 3 (2)文档打开参数列表.................................................................................................... 3 (3)广播事件..................................................................................................................... 4 3.示例代码 ..................................................................................................................................... 5 三、AIDL 方式....................................................................................................................................... 6 1.方式简介 ..................................................................................................................................... 6 2.AIDL 操作实现 ...........................................................................................................................6 3.AIDL 接口介绍 ...........................................................................................................................7 (1)获得和打开文档接口 ................................................................................................ 7 (2)Document 对象调用接口.......................................................................................9 (3)选区的操作接口...................................................................................................... 10 (4)嵌入式对象的操作接口..........................................................................................11 (5)对象的操作接口 ...................................................................................................... 11
一、WPS Office API 简介 通过第三方程序启动 WPS,然后进行文档的编辑、修改等操作,甚至可以通过第三方程序控制 wps 的一些基本操作,如打开文档、保存、另存、复制、剪切、粘贴、插入图片(文字)等功能。而根据操作 的类型,调用打开方式分为第三方启动方式以及 AIDL 方式两种。 二、第三方启动方式 1.方式简介 第三方启动方式是指通过 StartActivity 方式,启动 WPS,启动的时候可以传入一些参数,以便控制 文档的打开效果。主要可以实现控制上次打开进度、上次缩放进度、 第三方操作身份验证等功能。 2.参数介绍 (1)打开模式参数列表 模式 说明 备注 ”ReadOnly” 只读模式 “Normal” 正常模式 ”ReadMode” 打开直接进入阅读器模式 ”SaveOnly” 保存模式(打开文件,另存,关闭) 仅 Word、TXT 文档支持 仅 Word、TXT 文档支持 (2)文档打开参数列表 参数名 参数说明 类型 默认值 OpenMode SendSaveBroad 打开文件的模式。 文件保存时是否发送广播。 SendCloseBroad 文件关闭时是否发送广播。 ThirdPackage 第三方的包名,关闭的广播会包含该项。 ClearBuffer ClearTrace ClearFile ViewProgress AutoJump SavePath ViewScale ViewScrollX ViewScrollY UserName 关闭文件时是否请空临时文件。 关闭文件时是否删除使用记录。 关闭文件时是否删除打开的文件。 文件上次查看的进度。 是否自动跳转到上次查看的进度。 文件保存路径。 文件上次查看的视图的缩放。 文件上次查看的视图的 X 坐标。 文件上次查看的视图的 Y 坐标。 批注的作者。 HomeKeyDown 监听 home 键并发广播 BackKeyDown 监听 back 键并发广播 EnterReviseMode 以修订模式打开文档 CacheFileInvisible Wps 生成的缓存文件外部是否可见 String boolean boolean String boolean boolean boolean float boolean String float int int String boolean boolean boolean boolean Normal false false false false false 0.0% false 1.0 0 0 false false false True
PS:以上参数均放在 Intent 中,如有需要使用或者需要参加,请使用 Intent 添加或获取参数的方式使用。 例如: Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString(Define.OPEN_MODE, OpenMode); //打开模式 包名类名相关参数 参数名 普通版 英文版 企业版 className cn.wps.moffice.documentma nager.PreStartActivity2 cn.wps.moffice.documentma nager.PreStartActivity2 packageNa me cn.wps.moffice_eng cn.wps.moffice_eng cn.wps.moffice.docu mentmanager.PreStar tActivity2 cn.wps.moffice_ent (3)广播事件 3.1 Back 按钮广播 BackKeyDown 的值为 true 的时候,会发送该条广播 参数:action = “com.kingsoft.writer.back.key.down” 3.2 Home 按钮广播 HomeKeyDown 的值为 true 的时候,会发送该条广播 参数:action = “com.kingsoft.writer.home.key.down” 3.3 保存文件 文件保存时,SendSaveBroad 为 true 的时候,会发送一个"cn.wps.moffice.file.save"的广播。 广播含有以下信息,具体见下表。 参数名 “OpenFile” “ThirdPackage” “SavePath” 参数说明 文件最初的路径 传入的第三方的包名。 文件这次保存的路径 类型 String String String 默认值 3.4 关闭文件 文件关闭时,SendCloseBroad 值为 true 时,会发送一个"cn.wps.moffice.file.close"的广播。 广播含有以下信息,具体见下表。 参数名 “CloseFile” “ThirdPackage” “ViewProgress” “ViewScale” “ViewScrollX” “ViewScrollY” 参数说明 关闭文件的路径 传入的第三方的包名。 文件查看的进度 文件上次查看的视图的缩放 文件上次查看的视图的 X 坐标 文件上次查看的视图的 Y 坐标 类型 String String float float int int 0.0% 1.0 0 0 默认值
3.示例代码 PS:使用 StartActivity 方式,传入指定的参数,即可控制 WPS 打开的时候表现方式。以打开指定路径的 文档为例: boolean openFile(String path) { Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString(OPEN_MODE, READ_ONLY); //打开模式 bundle.putBoolean(SEND_CLOSE_BROAD, true); //关闭时是否发送广播 bundle.putString(THIRD_PACKAGE, selfPackageName); //第三方应用的包名,用于对改应用合法性的验证 bundle.putBoolean(CLEAR_TRACE, true); //清除打开记录 //bundle.putBoolean(CLEAR_FILE, true); //关闭后删除打开文件 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setClassName(packageName, className); File file = new File(path); if (file == null || !file.exists()) return false; { } Uri uri = Uri.fromFile(file); intent.setData(uri); intent.putExtras(bundle); try { startActivity(intent); } catch (ActivityNotFoundException e) { e.printStackTrace(); return false; } return true; } 注:在支持http模式打开文档的版本下,可以使用如下代码打开http文件: Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.parse("http://10.20.138.164:8080/TomcatServlet/upload/a.doc"); intent.setData(uri); try { startActivity(intent); } catch (ActivityNotFoundException e) { e.printStackTrace(); } 三、AIDL 方式 1.方式简介 AIDL 方式启动 WPS 是指,通过绑定 Service,调用 WPS 对外暴露的接口,直接操作 WPS 的功能。如打 开、保存、另存、打开手绘等。 上述两种操作方式各有利弊,使用第三方启动方式,简单方便,但是仅仅能控制一些打开文档的显示 方式;使用 AIDL 方式打开可以操控的功能比较多,但是实现较为复杂。下面我们介绍一下具体的操作实现。 2.AIDL 操作实现 下面代码展示如何绑定 WPS 的 Service,通过获得绑定的 Service 对象,调用对应的接口,即可操作 WPS 的相关功能。 public static final String OFFICE_SERVICE_ACTION = "cn.wps.moffice.service.OfficeService"; public static final String PRO_OFFICE_SERVICE_ACTION = "cn.wps.moffice.service.ProOfficeService"; void doBindService() { Intent intentOfficeService = new Intent(PRO_OFFICE_SERVICE_ACTION); // PRO_OFFICE_SERVICE_ACTION是绑定service的IntentFilter,之前版本提供的 OFFICE_SERVICE_ACTION也可以使用,只不过为了避免和个人版的冲突,添加了一个新参数 intentOfficeService.putExtra("DisplayView", true); bindService(intentOfficeService, mConnection, BIND_AUTO_CREATE); } void doUnbindService() { if (mIsBound) { unbindService(mConnection); mIsBound = false; } } //获取连接实例
private ServiceConnection connection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { mService = OfficeService.Stub.asInterface(service); } @Override public void onServiceDisconnected(ComponentName name) { mService = null; } }; 注 意 : 第 三 方 程 序 如 果 需 要 使 用 AIDL 方 式 操 作 wps , 需 要 将 moffice-aidl.jar 和 moffice-event-interface.jar 两个 jar 包导入到自己的工程中,并在 eclipse 中选择 Java Build Path 的 Order and Export 中选中两个 jar 包,这样编出的第三方应用程序才能正常操作控制 wps。 3.AIDL 接口介绍 (1)获得和打开文档接口 简介:该接口是获得和打开文档的操作,通过绑定 WPS 内部的 Service 即可获得 OfficeService 对象,然 后可以调用这些接口打开指定文档 OfficeService 对象及方法摘要 Documents getDocuments();获取文档对象集合 Document openDocument(String docPath, String password, Intent intent):打开文字文档获得文 档对象; 参数说明: docPath:要打开的文档路径 Password:WPS 加密文档的密码,如果文档没有使用 WPS 加密,传入””; Intent:包装其他数据,传入不同的打开参数,实现不同的效果,文档具体打开参数见附录 1。 Workbooks getWorkbooks();获取表格对象集合;暂时不支持带界面的操作 Workbook openWorkbook(String path, String password);打开表格文档,获取表格文档对象; 暂 时不支持带界面的操作 Document newDocument(String newDocPath, in Intent intent); //功能:新建一个 doc 文档,newDocPath 是文件路径,intent 是 AIDL 操作文档的一些设 置,与 openDocument 的 intent 相同作用 打开文档使用示例: 示例 1: Intent intent = new Intent(); Bundle bundle = new Bundle();
bundle.putBoolean(Define.BACK_KEY_DOWN, true);//监听Back键事件,对外发送广播 intent.putExtras(bundle); mDoc = mService.openDocument(path, "", intent);//mService为绑定文档后返回的对象 注:请将打开文档功能在子线程中进行,避免出现死锁现象
分享到:
收藏