精华内容
下载资源
问答
  • WPS Android版 API

    2018-08-13 16:35:23
    android调用wps,打开指定文件,wps保存文件,发出广播,android接收广播,解析内容
  • Java版SDK使用说明授权模块不是独立的应用,是其他应用模块接入的前提,申请其他应用时,都需要一并申请账号授权的能力。当申请了其他的能力并选择使用Java版SDK接入时,可参考以下的SDK接口说明。若还未下载SDK,请...

    Java版SDK

    使用说明授权模块不是独立的应用,是其他应用模块接入的前提,申请其他应用时,都需要一并申请账号授权的能力。当申请了其他的能力并选择使用Java版SDK接入时,可参考以下的SDK接口说明。若还未下载SDK,请先下载SDK。

    SDK获取开发语言资源下载环境要求Java适用于Java语言、jdk版本1.7以上的环境

    SDK相关接口调用

    注意: 在调用SDK的支付相关接口前,需要先配置SDK的应用信息:

    publicstaticvoidsetConfig(Stringappid,StringappKey);

    参数说明

    参数参数类型说明appidstring应用唯一标识

    appKeystring应用秘钥

    调用方式:Config.setConfig(appId, appKey);

    SDK接口说明如下:

    1, 通过code换取网页授权access_token

    通过code换取网页授权access_token

    publicstaticTokengetToken(Stringcode);

    尤其注意:由于应用appkey和获取到的access_token安全级别比较高,后续刷新access_token、通过access_token获取用户信息等步骤,必须从服务器调用接口。

    参数说明

    参数参数类型说明codestring填写第一步获取的code参数

    调用方式:Token token = OAuth2.getToken(code);

    2, 刷新access_token (如果需要)publicstaticTokenrefreshAccessToken(Stringrefresh_token);

    由于access_token的有效期较短,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为90天,当refresh_token失效之后,需要用户重新授权。使用refresh_token刷新access_token时,会返回一个新的refresh_token。

    参数说明

    参数参数类型说明refresh_tokenstring填写通过code获取到的refresh_token参数

    调用方式:Token token = OAuth2.refreshAccessToken(refreshToken);

    3, 拉取用户信息publicstaticUserInfogetUserInfo(Stringaccess_token,Stringopenid);

    参数说明

    参数参数类型说明access_tokenstringaccess_token

    openidstring用户标识openid

    调用方式:UserInfo userInfo = OAuth2.getUserInfo(accessToken, openId);

    4, 获取RPCTOken(RPC)publicstaticStringgetRPCToken(Stringaccess_token,Stringscope);

    由于access_token的安全级别比较高,当需要客户端调用某些接口时,需要通过access_token换取一个rpc_token。客户端可以通过rpc_token直接调用接口。

    参数说明

    参数参数类型说明access_tokenstringaccess_token

    scopestring用户授权的作用域(share_file,upload_file,get_user_info)

    调用方式:String rpcToken = OAuth2.getRPCToken(accessToken);

    5, 检测RPCTOken的权限publicstaticbooleancheckRPCToken(Stringrpc_token,Stringscope);

    参数说明参数参数类型说明rpc_tokenstringrpc_token

    scopestring用户授权的作用域

    调用方式:boolean result = OAuth2.checkRPCToken(rpcToken, scope);

    展开全文
  • wps windows二次开发说明文档,内含Demo程序,可直接参考使用,有各种文档的操作API说明。包括wps文字 、wpp、ET格式的API手册。
  • wps转pdf.rar

    2019-06-10 17:09:09
    wps接口用到了COM组件,必须在windows平台下;linux环境建议用openoffice方案解决(来自xdowns.com) * 使用说明: * 以下为php的系统命令函数调用php命令行
  • wps二次开发文档API

    2018-08-13 16:38:29
    wps二次开发文档API,详细介绍了WPS中各个类和方法,提供开发者调用,积分不够的朋友可以留言留下邮箱,看到就会发送过去了
  • wps的云储存

    2019-01-27 12:56:02
    [Application] company = kingsoft name = PDF ... [Update] ...m3 = Global\wpspdf_diff_patch_C42D7A0A-2868-45FF-92EE-9B7AE7124588 m4 = Global\wpspdfuninst_C42D7A0A-2868-45FF-92EE-9B7AE7124588
  • 网上搜到之前的嵌入Winform代码已经不可用了,自己搜索也没有找到,参考官方API文档自己弄了一个,基于LibreOffice 7.2.5,兼容性不错,绝大部分Office文档都可以浏览 且可以转换成PDF...对WPS的支持也不错,赶紧入手吧
  • WPS Office二次开发帮助文档,开发者最爱学习资料之一,欢迎下载
  • WPS 加载项开发

    千次阅读 2021-03-11 08:36:00
    WPS 加载项概述 WPS 加载项(Add-ins)是一套基于 Web 技术用来扩展 WPS 应用程序的解决方案。每个 WPS 加载项都对应打开了一个网页,并通过调用网页中 JavaScript 方法来完成其功能逻辑。 WPS 加载项打开的网页...

    WPS 加载项概述   

            WPS 加载项(Add-ins)是一套基于 Web 技术用来扩展 WPS 应用程序的解决方案。每个 WPS 加载项都对应打开了一个网页,并通过调用网页中 JavaScript 方法来完成其功能逻辑。 WPS 加载项打开的网页可以直接与 WPS 应用程序进行交互,同时一个 WPS 加载项中的多个网页形成了一个整体, 相互之间可以进行数据共享。 开发者不必关注浏览器兼容的问题,因为 WPS 加载项的底层是以 Chromium 开源浏览器项目为基础进行的优化扩展。 WPS 加载项具备快速开发、轻量化、跨平台的特性,目前已针对Windows/Linux操作系统进行适配。 WPS 加载项功能特点如下:(原理分析:内置chrome中集成了与wps客户端进行通讯的机制,同时可以调用wps开放的API。wps可通过内置chrome与第三方服务器进行通讯)。

    • 完整的功能。可通过多种不同的方法对文档(相应的Word)、电子表格(相当于Excel)和演示文稿(相当于PowerPoint)进行创作、格式设置和操控;通过鼠标、键盘执行的操作几乎都能通过WPS 加载项 完成;可以轻松地执行重复任务,实现自动化;

    • 三种交互方式。 自定义功能区,采用公开的CustomUI标准,快速组织所有功能; 任务窗格,展示网页,内容更丰富; Web 对话框,结合事件监听,实现自由交互。

    • 标准化集成。不影响 JavaScript 语言特性,网页运行效果和在浏览器中完全一致;WPS 加载项开发文档完整,接口设计符合 JavaScript 语法规范,避免不必要的学习成本,缩短开发周期。

    生成首个 WPS 加载项

    在本教程中,将创建一个 WPS 加载项,该加载项将:

    • 设计自定义功能区
    • 打开对话框
    • 创建自定义任务窗格

    准备开发环境

    • 安装wps
    • 安装Node.js
    • 安装代码编辑器 Visual Studio Code

    新建 WPS 加载项

    1、管理员权限(如果安装的是wps个人版,不需要管理员权限)启动命令行,通过npm全局安装wpsjs开发工具包:
    安装命令: npm install -g wpsjs, 如果之前已经安装了,可以检查下wpsjs版本,更新wpsjs的命令为:npm update -g wpsjs

    2、新建一个wps加载项,假设这个wps加载项取名为"HelloWps"。
    输入命令: wpsjs create HelloWps, 会出现如下图的几个选项:

    通过上下方向键可以选择要创建的wps加载项的类型,如果选择“文字”,则创建的加载项会在wps文字程序中加载并运行,
    同理选择“电子表格”,则会在wps表格中运行,这里假设我们选择的是“文字”,按Enter健确定。

    3、选择示例代码的代码风格类型
    wpsjs工具包提供了两种不同代码风格的示例,“无”代表示例代码中都是原生的js及html代码,没有集成vue\react等流行的前端框架。
    "Vue"代表生成的示例代码集成了Vue相关的脚手架,在实际的项目中选用Vue基于示例代码可能更适合做工程化的开发,感兴趣的同学可以两种都尝试一下。
    这里我们选择“无”,按Enter健确认。
    确认后wpsjs工具包会在当前目录下生成一个HelloWps的文件夹,我们进入到此文件夹,可以看到HelloWps的相关代码已经生成:

    4、开始调试并愉快的写代码
    执行命令: wpsjs debug
    执行此命令后即可开始调试,wpsjs工具包会自动启动wps并加载HelloWps这个加载项同时wpsjs工具包启了一个http服务,此服务主要提供两方面的能力:
    a、提供前端页的的热更新服务,wpsjs工具包检测到网页数据变化时,自动刷新页面。
    b、提供wps加载项的在线服务,wpsjs生成的代码示例是一个在线模式,wps客户端程序实际上是通过http服务来请求在线的wps加载项相关代码和资源的(自动下载wps加载项到某个临时文件夹中或者直接加载到内存中)
    最后,可以用visual studio code打开示例代码,开始愉快的写代码了。

    备注:wpsjs工具包为示例代码中有一个package.json文件,这是node工具标准的配置文件,其中有一个依赖包为wps-jsapi,
    这个依赖包是wps支持的全部接口的TypeScript描述,方便在vscode中敲代码时,提供代码联想功能,由于wps接口会跟随业务
    需求不断更新,因此当发现代码联想对于有些接口不支持时,通过 npm update --save-dev wps-jsapi命令定期更新这个包。


    以上展示了如何开始第一个wps加载项的制作,在实际用况中,如果需要让企业的业务系统与wps加载项进行集成,可以参考以下示例:OA助手示例

    WPS 加载项开发说明

    WPS 加载项结构

        WPS 加载项由 自定义功能区和网页两部分组成。自定义功能区只需要一个配置文件,对应 WPS 加载项目录中的ribbon.xml文件; 网页部分负责执行自定义功能区对应的逻辑功能。因为不需要显示网页,所以省略了 HTML 文件,并用main.js来引入所有的外部 JavaScript 文件; 在这些 JavaScript 文件中通常包含了一系列用 JavaScript 实现的函数,这些函数与自定义功能区的功能一一对应,我们称之为接口函数

    启动流程

        WPS 加载项启动时,首先在 WPS 加载项对应文件夹中自动创建index.html网页并打开,index.html从当前路径引入main.js,从而能够在接下来的过程中执行接口函数。 当网页打开成功之后,开始解析ribbon.xml生成自定义功能区,解析过程中会调用若干次接口函数,最终完成加载。 注意,开发者应当避免在该目录下创建index.html。

    WPS 加载项 API 使用

        WPS 加载项 API 通过对 JavaScript 功能进行的扩展,实现了网页与 WPS 应用程序交互的能力。这些 API 被集中在window.wps对象下,而我们在开发中通常会省略掉window,直接以wps开始。

    调试

        WPS 加载项调试是对其中的一个网页单独进行的调试。调试时会弹出一个独立调试器对话框,除此之外和网页调试基本一致。 可以在调试器的 Console 中直接查看任意的 API 属性和调用 API 方法。调试自动生成的index.html网页,使用快捷键 ALT + F12。 注意调试过程中需要先关闭alert或其它同步弹框,才能继续向下调试。

    系统集成

        用户可以在自己的浏览器中调用 WPS 加载项的 JavaScript 方法。 wps_sdk.js对调用进行了封装,让开发者可以快速调用, wps_sdk.js对Chrome、Edge、IE8及IE8以上浏览器进行了支持。其它方式的集成请参考wps_sdk.js实现。 点击 这里试一下吧。

    WpsInvoke.InvokeAsHttp(WpsInvoke.ClientType.wps, 'JsDemo', 'OnbtnShowDialogClick', {}, function (res) {
    if (res.status == 0)
    	alert('finish')
    else
    	alert(res.message)
    })

    接口定义

        WpsInvoke.InvokeAsHttp(type, name, func, params, callBack)

    参数

        其中 WpsInvoke 是wps_sdk.js封装的对象,InvokeAsHttp是启动 WPS 应用程序的接口。

    • type : WPS 应用程序的类型,类型的定义在ClientType中,ClientType.wps代表文字(word process )、ClientType.et代表表格(electric table)、ClientType.wpp代表演示(wps power point)。
    • name : WPS 加载项名称。
    • func : 执行的 JavaScript 方法
    • params : 传递给方法func的参数
    • callBack : WpsInvoke.InvokeAsHttp执行的回调函数。

    说明

        启动 WPS 应用程序需要用户在浏览器点击允许启动 WPS Office。WpsInvoke.InvokeAsHttp执行是异步的,调用后立刻返回。 等到WpsInvoke.InvokeAsHttp执行完成后,执行callBack回调函数,并给回调函数传参

    {
    	status: 0,  //返回状态。0 代表成功;1 代表上次请求没有完成;2 代表没有允许执行。
    	message: "" //返回状态描述信息
    }

    发布部署

        加载项开发完成后,很多开发者可能会有这样的一些问题:加载项如何部署呢、用户如何访问部署后的加载项呢、用户需要安装什么、用户是否需要去手动修改配置呢

        目前我们提供两种部署方式,jsplugins.xml模式和publish.xml模式,两种都不需要用户去手动配置什么。只需要本地安装好相应版本的WPS就行。WPS可以同时支持这两种模式。

    1、publish模式

    • 1.1 模式介绍

          publish模式是通过wpsjs工具包的wpsjs publish命令打包,将生成的文件夹下的所有文件部署到打包时填写服务器地址去。告知用户publish.html地址,业务系统开发商可将publish.html的功能按需整合到自己的页面中,便于做基础环境监测。也可以复用此页面给到用户,用户可自己控制启用和禁用哪些加载项。

    • 1.2 部署

      • 使用wpsjs包的wpsjs publish命令进行打包
      • 将目录wps-addon-build下的文件署到服务器
      • 将wps-addon-publish下的publish.html文件部署到服务器上,一般与加载项分开部署
      • 告知用户publish.html文件地址。
        wpsjs工具包使用
    • 1.3 加载项加载流程

      • 用户在浏览器中打开publish.html文件
      • 校验加载项是否正常
        • 在线模式:去请求地址+/ribbon.xml和 地址+/index.html
        • 离线模式:校验改地址是否能够访问到压缩包
      • 点击安装或卸载的加载项
      • 本地自动生成publish.xml文件
        • window:%appdata%/kingsoft/wps/jsaddons
        • linux: ~/.local/share/Kingsoft/wps/jsaddons
      • 启动WPS
      • 读取本地publish.xml文件
      • 加载对应组件的所有加载项
      • 根据业务系统指定的加载项名称,使用该加载项来接收参数
      • 业务开发方可将此页面的方法按需整合到自己的需要调起WPS的业务场景中,从而达到自动化的环境配置。
    • 1.4 适用场景

      • 只交付WPS基础包,无需二次打包
      • 实现集成松耦合
      • 便于业务开发方按需定义集成场景
    • 1.5 版本支持情况

      • Windows:企业版20200425分支之后版本
      • Linux:企业版20200530分支之后版本

    2、jsplugins.xml模式

    • 2.1 模式介绍

          jsplugins.xml模式是通过设置oem.ini配置文件的JSPluginsServer的值为加载项管理文件jsplugins.xml来控制加载项的加载(相当于WPS加载项列表文件),二次打包时,业务开发商需要告知我们JSPluginsServer的配置地址,将起配置到oem.ini文件中,业务开发商再做安装包分发。

          后续的加载项的控制用,业务开发商可以自由的更改jsplugins.xml文件,实现加载项的新增,修改。

          jsplugins.xml文件的配置

    • 2.2 部署

      • 使用wpsjs包的wpsjs build进行加载项打包
      • 将目录wps-addon-build下的文件署到服务器
      • 配置jsplugins.xml文件
      • 部署jsplugins.xml文件,一般和加载项项目分开部署
      • 告知WPS获取jsplugins.xml的网络地址,即JSPluginsServer。(只需要打一次包,后续更改jsplugins.xml的内容不需要再次打包)
        wpsjs工具包使用
    • 2.3 加载项加载流程

      • 启动WPS
      • 读取oem.ini,去下载JSPluginsServer对应地址的jsplugins.xml文件
        • window:%appdata%/kingsoft/wps/jsaddons
        • linux: ~/.local/share/Kingsoft/wps/jsaddons
      • 读取jsplugins.xml文件
      • 加载对应组件的所有加载项
      • 根据业务系统指定的加载项名称,使用该加载项来接收参数
    • 2.4 适用场景

      • 本来就需要做二次打包的项目
    • 2.5 版本支持情况

      • Windows:2019版本,2020发的版本
      • Linux:2019版本,2020年3月后发的版本
    展开全文
  • WPS issue on SDK 3.0.1

    2020-12-30 05:06:22
    <p>I have issue with WPS on new SDK 3.0.1. WPS not working, and finally code is 23: user_interface.h: REASON_802_1X_AUTH_FAILED = 23, /<em> 11i </em>/ log: mode : sta(5c:cf:7f:XX:XX:XX) add if0 ...
  • WPS Android版API

    千次阅读 2018-06-25 15:06:52
    WPS Android版API 一、WPS Office API简介 通过第三方程序启动WPS,然后进行文档的编辑、修改等操作,甚至可以通过第三方 程序控制wps的一些基本操作,如打开文档、保存、另存、复制、剪切、粘贴、插 入图片...

    WPS Android版API

    一、WPS Office API简介

    通过第三方程序启动WPS,然后进行文档的编辑、修改等操作,甚至可以通过第三方
    程序控制wps的一些基本操作,如打开文档、保存、另存、复制、剪切、粘贴、插
    入图片(文字)等功能。而根据操作的类型,调用打开方式分为第三方启动方式
    以及AIDL方式两种。

    二、第三方启动方式

    1.方式简介
    第三方启动方式是指通过StartActivity方式,启动WPS,启动的时候可以传入一
    些参数,以便控制文档的打开效果。主要可以实现控制上次打开进度、上次缩放
    进度、 第三方操作身份验证等功能。

    2.参数介绍
    1: 打开模式参数列表

    模式说明备注
    “ReadOnly”只读模式
    “Normal”正常模式
    “ReadMode”打开直接进入阅读器模式仅Word、TXT文档支持
    “SaveOnly”保存模式(打开文件,另存,关闭)仅Word、TXT文档支持

    2: 文档打开参数列表

    参数名参数说明类型默认值
    OpenMode打开文件的模式。StringNormal
    SendSaveBroad文件保存时是否发送广播。booleanfalse
    SendCloseBroad文件关闭时是否发送广播。booleanfalse
    ThirdPackage第三方的包名,关闭的广播会包含该项。String
    ClearBuffer关闭文件时是否请空临时文件。booleanfalse
    ClearTrace关闭文件时是否删除使用记录。booleanfalse
    ClearFile关闭文件时是否删除打开的文件。booleanfalse
    ViewProgress文件上次查看的进度。float0.0%
    AutoJump是否自动跳转到上次查看的进度。booleanfalse
    SavePath文件保存路径。String
    ViewScale文件上次查看的视图的缩放。float1.0
    ViewScrollX文件上次查看的视图的X坐标。int0
    ViewScrollY文件上次查看的视图的Y坐标。int0
    UserName批注的作者。String
    HomeKeyDown监听home键并发广播booleanfalse
    BackKeyDown监听back键并发广播booleanfalse
    EnterReviseMode以修订模式打开文档booleanfalse
    CacheFileInvisibleWps生成的缓存文件外部是否可见booleanTrue

    PS:以上参数均放在Intent中,如有需要使用或者需要参加,请使用Intent添加或获取参数的方式使用。

    例如:

    Intent intent = new Intent();
    
    Bundle bundle = new Bundle();
    
    bundle.putString(Define.OPEN_MODE, OpenMode); //打开模式

    包名类名相关参数

    参数名普通版英文版企业版
    classNamecn.wps.moffice.documentmanager.PreStartActivity2cn.wps.moffice.documentmanager.PreStartActivity2cn.wps.moffice.documentmanager.PreStartActivity2
    packageNamecn.wps.moffice_engcn.wps.moffice_engcn.wps.moffice_ent

    3: 广播事件

    1. Back按钮广播
      BackKeyDown的值为true的时候,会发送该条广播
      参数:action = “com.kingsoft.writer.back.key.down”

    2. Home 按钮广播
      HomeKeyDown 的值为true的时候,会发送该条广播
      参数:action = “com.kingsoft.writer.home.key.down”

    3. 保存文件
      文件保存时,SendSaveBroad为true的时候
      会发送一个”cn.wps.moffice.file.save”的广播。

      广播含有以下信息,具体见下表。

      参数名参数说明类型
      “OpenFile”文件最初的路径String
      “ThirdPackage”传入的第三方的包名。String
      “SavePath”文件这次保存的路径String
    4. 关闭文件
      文件关闭时,SendCloseBroad值为true时
      会发送一个”cn.wps.moffice.file.close”的广播。

      广播含有以下信息,具体见下表。

    参数名参数说明类型默认值
    “CloseFile”关闭文件的路径String
    “ThirdPackage”传入的第三方的包名。String
    “ViewProgress”文件查看的进度 float0.0%
    “ViewScale”文件上次查看的视图的缩放float1.0
    “ViewScrollX”文件上次查看的视图的X坐标int0
    “ViewScrollY”文件上次查看的视图的Y坐标int0

    示例代码
    PS:使用StartActivity方式,传入指定的参数,即可控制WPS打开的时候表现方式。以打开指定路径的文档为例:

    
    public class WpsModel {
        public static final String OPEN_MODE = "OpenMode";// 打开文件的模式。  
        public static final String SEND_SAVE_BROAD = "SendSaveBroad";// 文件保存时是否发送广播。  
        public static final String SEND_CLOSE_BROAD = "SendCloseBroad";// 文件关闭时是否发送广播  
        public static final String THIRD_PACKAGE = "ThirdPackage";// 第三方的包名,关闭的广播会包含该项。  
        public static final String CLEAR_BUFFER = "ClearBuffer";// 关闭文件时是否请空临时文件。  
        public static final String CLEAR_TRACE = "ClearTrace";// 关闭文件时是否删除使用记录。  
        public static final String CLEAR_FILE = "ClearFile";// 关闭文件时是否删除打开的文件。  
        public static final String VIEW_PROGRESS = "ViewProgress";// 文件上次查看的进度。  
        public static final String AUTO_JUMP = "AutoJump";// 是否自动跳转到上次查看的进度。  
        public static final String SAVE_PATH = "SavePath";// 文件保存路径。  
        public static final String VIEW_SCALE = "ViewScale";// 文件上次查看的视图的缩放。  
        public static final String VIEW_SCALE_X = "ViewScrollX";// 文件上次查看的视图的X坐标。  
        public static final String VIEW_SCALE_Y = "ViewScrollY";// 文件上次查看的视图的Y坐标。  
        public static final String USER_NAME = "UserName";// 批注的作者。  
        public static final String HOMEKEY_DOWN = "HomeKeyDown";// 监听home键并发广播  
        public static final String BACKKEY_DOWN = "BackKeyDown";// 监听back键并发广播  
        public static final String ENTER_REVISE_MODE = "EnterReviseMode";// 以修订模式打开文档  
        public static final String CACHE_FILE_INVISIBLE = "CacheFileInvisible";// Wps生成的缓存文件外部是否可见  
    
        public class OpenMode {
            public static final String NORMAL = "Normal";// 只读模式  
            public static final String READ_ONLY = "ReadOnly";// 正常模式  
            public static final String READ_MODE = "ReadMode";// 打开直接进入阅读器模式  
            // 仅Word、TXT文档支持
            public static final String SAVE_ONLY = "SaveOnly";// 保存模式(打开文件,另存,关闭)  
            // 仅Word、TXT文档支持
        }
    
        public class ClassName {
            public static final String NORMAL = "cn.wps.moffice.documentmanager.PreStartActivity2";
                // 普通版
            public static final String ENGLISH = "cn.wps.moffice.documentmanager.PreStartActivity2";
                // 英文版
            public static final String ENTERPRISE = "cn.wps.moffice.documentmanager.PreStartActivity2";
                // 企业版
        }
    
        public class PackageName {
            public static final String NORMAL = "cn.wps.moffice_eng";// 普通版  
            public static final String ENGLISH = "cn.wps.moffice_eng";// 英文版  
        }
    
        public class Reciver {
            public static final String ACTION_BACK = "com.kingsoft.writer.back.key.down";// 返回键广播  
            public static final String ACTION_HOME = "com.kingsoft.writer.home.key.down";// Home键广播  
            public static final String ACTION_SAVE = "cn.wps.moffice.file.save";// 保存广播  
            public static final String ACTION_CLOSE = "cn.wps.moffice.file.close";// 关闭文件广播  
        }
    }  
    boolean openFile(String path) {
    
            Intent intent = new Intent();
            Bundle bundle = new Bundle();
            bundle.putString(WpsModel.OPEN_MODE, WpsModel.OpenMode.READ_ONLY);
            //打开模式
            bundle.putBoolean(WpsModel.SEND_SAVE_BROAD, true);
            //关闭时是否发送广播
            bundle.putString(WpsModel.THIRD_PACKAGE, getApplication().getPackageName());
            //第三方应用的包名,用于对改应用合法性的验证
            bundle.putBoolean(WpsModel.CLEAR_TRACE, true);
            //清除打开记录
            //bundle.putBoolean(CLEAR_FILE, true);
            //关闭后删除打开文件
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setAction(android.content.Intent.ACTION_VIEW);
            intent.setClassName(WpsModel.PackageName.NORMAL, WpsModel.ClassName.NORMAL);
            File file = new File(path);
            if (!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;
        }
    注册广播
    @Override
        public void onCreate() {
            super.onCreate();
            IntentFilter filter = new IntentFilter();
            filter.addAction(WpsModel.Reciver.ACTION_CLOSE);
            filter.addAction(WpsModel.Reciver.ACTION_SAVE);
            registerReceiver(mReceiver, filter);
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            unregisterReceiver(mReceiver);
        }
    
        private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (WpsModel.Reciver.ACTION_CLOSE.equals(action)) {
                    //TODO
                } else if (WpsModel.Reciver.ACTION_SAVE.equals(action)) {
                     //TODO
                }
            }
        };

    三、AIDL方式

    1. 方式简介
      AIDL方式启动WPS是指,通过绑定Service,调用WPS对外暴露的接口
      直接操作WPS的功能。如打开、保存、另存、打开手绘等。

      两种操作方式各有利弊
      使用第三方启动方式,简单方便,但是仅仅能控制一些打开文档的显示方式
      使用AIDL方式打开可以操控的功能比较多,但是实现较为复杂。
      下面我们介绍一下具体的操作实现。

    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";
        private boolean mIsBound;
    
        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;
            }
        };
    
    
        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为绑定文档后返回的对象

    **注意:第三方程序如果需要使用AIDL方式操作wps,
    需要将 moffice-aidl.jar和moffice-event-interface.jar
    两个jar包导入到自己的工程中,并在eclipse中选择Java Build
    Path的Order and Export中选中两个jar包,这样编出的第三方应用程
    序才能正常操作控制wps。**

    AIDL接口介绍

    OfficeService对象方法摘要
    DocumentsgetDocuments();获取文档对象集合
    DocumentopenDocument(String docPath, String password, Intent intent):
    打开文字文档获得文档对象;参数说明:docPath:要打开的文档路径Password:WPS加密文档的密码
    如果文档没有使用WPS加密,传入””;Intent:包装其他数据,传入不同的打开参数,实现不同的效果
    文档具体打开参数见附录1。
    WorkbooksgetWorkbooks();获取表格对象集合;暂时不支持带界面的操作
    WorkbookopenWorkbook(String path, String password);打开表格文档,获取表格文档对象; 暂时不支持带界面的操作
    DocumentnewDocument(String newDocPath, in Intent intent);
    功能:新建一个doc文档,newDocPath是文件路径,intent是AIDL操作文档的一些设置,与openDocument的intent相同作用
    展开全文
  • 前几天开发工具箱里的一个功能:文档格式转换,打算支持WPS文档转PDF,在网上找了半天也没找到合适。后来到WPS的官网找了下,发现他们有个开放平台,里面有API可以实现。最终也是基于这个WPS开放平台,才实现WPS文档...

    前几天开发工具箱里的一个功能:文档格式转换,打算支持WPS文档转PDF,在网上找了半天也没找到合适。后来到WPS的官网找了下,发现他们有个开放平台,里面有API可以实现。最终也是基于这个WPS开放平台,才实现WPS文档转PDF。这里面坑也不少,这篇文章就是来填坑的,注:我的开发语言是C#。

    图片

     

    首先要在(https://open.wps.cn)上面注册个帐号,注册成功。然后在下图这里要创建一个App,需要审核(据说每天下午3点开始审核),一般当天就能过。

    图片

     

    注意:审核通过后,才能看到AppKey。

    图片

     

    文档转换有2个API,是异步的。 Conv用来转换,Query用来查询。 Conv方法有个参数是回调地址,相当于文档转换成功,会向这个地址发送一条消息。其实可以不用,直接用Query查询即可

     

    下面说下签名,相信很多人都在这个环节卡住了。返回结果一般是content md5 error或Signature error,这也不怪你们,因为他们的文档写得不完善。如下图所示,这个URI值也没有说清楚,一带而过。还是直接看代码吧。

    Conv方法,签名中的URI是/pre/v1/convert

    Query方法,签名中的URI是/pre/v1/query的一部分

    图片

     

    还有一个参数挺奇怪的,就是Date,格式如下图所示

    图片

     

    加密方法也要注意,Net版是这样的。HMACSha1加密后,生成的二进制数组直接转为Base64,如下图所示

    图片

     

    通过上面的纠正,调用Conv这个方法就没问题了。 图片

     

    再说下Query方法,也是大同小异。唯一需要注意的就是签名时的URI串。上面只说了一半,完整的URI地址如下图所示,是拼接出来的。

    图片

     

    最后注意的是,调用API时的头部这4个参数是必须的。

    图片

     

    补充:C#可以用这个第三方DLL,很好用。

    图片

    展开全文
  • 使用接口 /v1/3rd/file/info 获取excel文件信息时,发生...但是对接项目返回的提示登录信息在wps平台没有显示,解决:将回调接口的url前缀添加到对接项目过滤器的例外url前缀配置列表中,不让登录过滤器拦截到,这...
  • WPS二次开发接口.zip

    2020-07-01 16:53:45
    WPS二次开发接口文档, CHM格式。包含WPS文字、表格和PPT三样(2015版)。谁有新版本,我也需要。
  • 手机精简版SDK

    2012-11-26 01:04:08
    诺基亚800破解软件,SDK 精简包2.8MB 精简了软件开发部分 只保留部署所用到的功能 wp7谁都不想装一个1.4GB的SDK 但是N多功能都用不到,,这个安装包提取自微软官方SDK 保留了XAP安装部分 大小只有2.8MB 当然 它...
  • Realtek_WPS_user_guide.pdf

    2019-07-26 16:43:15
    and will utilize Realtek 8xxx-SDK to develop their products. 1.3 Definitions of Wi-Fi Protected Setup terminologies (Wi-Fi Protected Setup Specification 1.0h.pdf, p. 11) WPS: Stands for Wi-Fi ...
  • WPS提供的API函数

    2013-04-07 11:28:15
    WPS提供的API函数进行WPS二次开发
  • 首先查看/proc/gpio,由于只有2.4G,但是由于原厂sdk默认没有这个编译配置,所以只能使用RTL8197FH-VG+RTL8812F配置修改,但是系统启动之后/proc/gpio的值始终为1,表示双频触发WPS,所以此处感觉有问题 0: WPS is ...
  • WPS Office for Linux二次开发C++接口Python绑定. Read this in other languages: WPS Office二次开发接口 WPS二次开发接口允许开发者通过给定的接口来调起WPS并执行指定的任务, 比如你可以打开、编辑然后保存文档...
  • 仿WPS PDF阅读器

    千次阅读 2019-03-14 19:17:36
    仿WPS PDF阅读器 文章目录仿WPS PDF阅读器功能效果图工程文件结尾 功能 仿WPS界面 预览PDF 支持PDF预览放大,缩小 支持目录预览查看 支持点击目录标题跳转页面 支持页数指定跳转 支持前后,首页,尾页...
  • vue2.x适配wps加载项

    2021-06-26 11:02:00
    **本文地址:**https://zechariahzheng.github.io/posts/vue2.x%E9%80%82%E9%85%8Dwps%E5%8A%A0%E8%BD%BD%E9%A1%B9/ ... WPS 加载项打开的网页可以直接与 WPS 应用程序进行交互,同时一个 WPS 加载项中的多个网页形
  • 需要对wps写一个小的插件,也就是几行代码的事情,但却碰到了一个坑...比如开发wps文档的插件,需要引用1. Kingsoft Add-In Designer2. Kingsoft Wps 2.0 Object Library3. kingsoft Office 2.0(1.0) Object Library...
  • WPS加载项是如何实现调用业务系统JS的 WPS通信原理 wpssdk...应用系统调用wpsSDK后,sdk把应用系统的动作封装起来 -> 访问并传参给监听服务,该监听服务(wpscloudsvr.exe)负责调起wps。实现无弹窗调起 同理,调用w
  • WPS API

    热门讨论 2008-02-29 14:47:44
    Kingsoft WPS API Help Document
  • WPS Office是一款免费(但不开源)的办公套件,目前已经在Windows、macOS、Android、iOS和Linux设备上线,由于在界面和功能上模仿了微软Office的部分特性,对于那些轻量办公的用户来说已经能够完全驾驭大部分需求。...
  • android集成第三方---集成wps实现文档阅读功能

    千次阅读 热门讨论 2018-08-14 16:13:06
    前段时间app需要实现一个直接打开office文档的功能,在这里记录一下,方便以后使用,...第一种是通过第三方启动方式直接打开文件,第二种是使用AIDL方式启动WPS,通过绑定Service,调用WPS对外暴露的接口,直接操作...
  • WPS PDF转Word工具

    2021-07-10 06:32:46
    WPS PDF转Word工具链接:https://pan.baidu.com/s/1Ijh5MSBWZtsXsm05_6yYvw提取码:gufy下载运行后会解压到“D:\Program Files\Kingsoft\WPS PDF to Word”文件夹中,直接运行快捷方式“WPS PDF to Word”即可。...
  • WebOffice-开发接口SDK

    2012-09-11 15:09:53
    收藏资料: WebOffice-开发接口SDK
  • 用java进行WPS的二次开发,由Kingsoft公司发布的免费开发包。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,560
精华内容 624
关键字:

sdkwps