当前位置: 首页 > news >正文

WPS二次开发系列:WPS SDK初始化

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

本文将详细介绍WPS SDK初始化,帮您能够更好的在项目中接入WPS SDK实现自己的应用和WPS应用进行通信交互。

1.集成前的准备

1.1申请集成资料:

向WPS官方发送邮件申请,邮件格式如下

邮件模板:
发起人:有需要申请接入WPS移动端的企业或者个人
邮件主题: XXX公司XXX项目---WPS Android端 SDK二次开发集成申请
邮件发送: m_open_sdk@wps.cn
邮件内容
请明确包含申请项目背景规模、集成应用第三方APP包名、 具体需求 集成周期等

以上面格式发送邮件申请后,WPS方审核通过后会以邮件回复的相关集成资料(SDK&Demo&集成文档)

2.开始集成

2.1 环境配置

在自己项目工程中导入wps-sdk依赖库(wps_sdk.aar)

  • 将wps-sdk-xxx.aar 拷贝到项目中的libs目录下
  • 在项目build.gradle中添加
dependencies {implementation fileTree(include: ['*.jar', '*.aar'], dir:'libs')//或者//    implementation files("/libs/wps-sdk-xxx.aar").....
}

2.2 SDK初始化

在第三方应用Application中的onCreate方法中调用

调用 WpsSdk.getInstance().init(…)进行初始化

参考示例代码:

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();SdkConfig config = new SdkConfig.Builder()//开启日志开关.setEnableDebug(BuildConfig.DEBUG)
//                .setWpsPackageName("cn.wps.moffice_i18n_TV") //传入WPS的包名,比如需要调用TV版等,默认调用WPS版本不需要设置.build();//初始化WpsSdk.getInstance().init(this,  config, new ResultCallback() {@Overridepublic void onCallback(Result result) {if (result.code == 0){Toast.makeText(MyApplication.this, "WPS SDK初始成功", Toast.LENGTH_SHORT).show();}else {Toast.makeText(MyApplication.this, "初始化失败:"+result, Toast.LENGTH_SHORT).show();}}});}
}

2.3 初始化注意事项说明

2.3.1 SDK初始化代码的调用位置?

  • SDK的初始化建议在自己应用MyApplication的onCreate方法中进行,如上文示例代码
  • 如果自己的是多进程架构的,需要注意SDK的初始化和后续SDK调用API保持同一个进程

2.3.2 SDK初始代码形式

2.3.2.1简单默认形式,默认使用WPS个人版
public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();WpsSdk.getInstance().init(this);}
}
2.3.2.2 高级形式,SDK初始化时可以进行一些配置
public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();SdkConfig config = new SdkConfig.Builder()//开启日志开关.setEnableDebug(BuildConfig.DEBUG)
//                .setWpsPackageName("cn.wps.moffice_i18n_TV") //传入WPS的包名,比如需要调用TV版等,默认调用WPS版本不需要设置.build();WpsSdk.getInstance().init(this,config);}
}
📌

PS: 注意可以通过setWpsPackageName来控制SDK打开的WPS版本,对于非应用市场通用的WPS版本,如WPS企业版,WPS TV版等版本,可以通过指定包名进行操作。

2.3.2.3 关注SDK初始返回值
  • 不关心初始化结果(返回值)
    • 默认配置
WpsSdk.getInstance().init(this);
  • 自定义配置
      WpsSdk.getInstance().init(this,config);
  • 关心初始化结果(返回值),通过ResulCallback回调得到初始化结果Result
//初始化
WpsSdk.getInstance().init(this,  config, new ResultCallback() {@Overridepublic void onCallback(Result result) {if (result.code == 0){Toast.makeText(MyApplication.this, "WPS SDK初始成功", Toast.LENGTH_SHORT).show();}else {Toast.makeText(MyApplication.this, "初始化失败:"+result, Toast.LENGTH_SHORT).show();}}
});

最后如果能够帮助到您,请动动发财的小手来个一键三连💪,老铁们有兴趣可以加Q群:250325397,吹牛摸鱼嗨起来!

相关文章:

WPS二次开发系列:WPS SDK初始化

作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 本文将详细介绍WPS SDK初始化,帮您能够更…...

EXCEL地理数据处理工具(地图任务)

版本号 作者 修订内容 发布日期 1.0 小O 更新至0705版 2022-4-28 1.1 小O 更新至0772版 2024年4月3日 一、概述 小O地图EXCEL插件版提供基于EXCEL表格进行地理数据处理、地图可视化、地图绘图等功能,地理工具是用户使用频率很高的功能模块。地理工具能…...

软件设计原则:迪米特法则

定义 迪米特法则(Law of Demeter, LoD),又称最少知识原则,它指导我们在设计软件时,应当尽量减少对象之间的交互,一个对象应该对其他对象有尽可能少的了解。具体来说,一个对象应该只调用属于以下…...

MongoDB聚合运算符:$max

文章目录 语法使用空值和缺失值的处理数组操作数的处理 举例在$group阶段使用在$setWindowFields阶段使用在$project阶段使用 $max聚合运算符用于返回最大值。 $max对于不同的类型的值使用BSON的比较顺序。 $max可以用于下面的这些阶段: $addFields$bucket$bucket…...

神经网络学习笔记10——RNN、ELMo、Transformer、GPT、BERT

系列文章目录 参考博客1 参考博客2 文章目录 系列文章目录前言一、RNN1、简介2、模型结构3、RNN公式分析4、RNN的优缺点及优化1)LSTM是RNN的优化结构2)GRU是LSTM的简化结构 二、ELMo1、简介2、模型结构1)输入2)左右双向上下文信…...

Java23种设计模式

本文主要是对Java中一些常用的设计模式进行讲解 后期会进行不断的更新,欢迎浏览 23种设计模式 创建型模式,共五种:工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式。结构型模式,共七种:适配器模式、桥接…...

pieces of cake concerning torchtorchvision

1. version match torchvision的版本对应关系 2. utilize tqdm to present process bar lay a pbar from tqdm import tqdm pbar tqdm(unit"batch", filesys.stdout,totallen(self.training_dataloader)) #处理单位为batch pbar2 tqdm(range(20), descIt\s a t…...

如何在Python中处理JSON数据?

如何在Python中处理JSON数据? 在Python中处理JSON数据是一个常见的任务,因为JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。Python的内置库…...

站群服务器如何提高搜索引擎排名

站群服务器是一种专门为多个相关联的网站提供支持的服务器,旨在通过网站集合的形式提高搜索引擎排名和曝光度。那么站群服务器如何提高搜索引擎排名呢?Rak部落小编为您整理发布。 站群服务器提高搜索引擎排名的原理主要在于以下几个方面: - **提高网站…...

Redis安装-Docker

安装redis的docker容器 1、创建redis挂载目录 mkdir -p /liuchaoxu/redis/{data,conf}2、复制配置文件 在 /liuchaoxu/redis/conf 目录中创建文件 redis.conf,文件从 redis-6.2.7.tar.gz 中解压获取 修改默认配置(从上至下依次): #bind 127.0.0.1 …...

day16-二叉树part03

104.二叉树的最大深度 (优先掌握递归) 根节点的高度就是二叉树的最大深度,后序遍历到叶子节点,对遍历高度取最小 class solution {/*** 递归法*/public int maxDepth(TreeNode root) {if (root null) {return 0;}int leftDepth maxDepth(ro…...

上位机图像处理和嵌入式模块部署(qmacvisual亮度检测)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,在机器视觉当中,对于光源的处理要非常小心。这里面不仅包括了选择什么样的光源,还取决于怎样使用…...

防止推特Twitter账号被冻结,应该选什么代理类型IP?

在处理多个 Twitter 帐号时,选择合适的代理IP对于避免大规模帐户暂停至关重要。现在,问题出现了:哪种类型的代理是满足您需求的最佳选择?下面文章将为你具体讲解推特账号冻结原因以及重点介绍如何选择代理IP。 一、推特账号被冻结…...

【二叉树】Leetcode 114. 二叉树展开为链表【中等】

二叉树展开为链表 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同…...

2024年150道高频Java面试题(二十)

39. 说一下 HashMap 的实现原理? HashMap 是 Java 中使用非常普遍的一种基于散列的映射数据结构,主要用于存储键值对。它允许使用任何非空对象作为键和值,主要实现原理如下: 数组 链表 红黑树:HashMap 内部主要由一…...

Docker-Compose容器编排

​ 基本介绍 使用一个Dockerfile模板文件,可以很方便的定义一个适合自己使用的自定义镜像。但在工作中经常会碰到需要多个容器相互配合来完成某项任务或运行某个项目的情况。例如要运行一个django项目,除了django容器本身,往往还需要再加上…...

nvm 安装多个版本的Node npm

先安装nvm 管理工具 git安装地址 找到安装包 下载然后安装 https://github.com/coreybutler/nvm-windows/releases/tag/1.1.11nvm常用命令 命令说明nvm version查看nvm版本nvm ls查看所有已经安装的Nodejs版本nvm list installed查看所有已经安装的Nodejs版本nvm ls availab…...

RisingWave 在品高股份 Bingo IAM 中的应用

背景介绍 公司背景 品高股份,是国内专业的云计算及行业信息化服务提供商。公司成立于 2003 年,总部位于广州,下设多家子公司和分公司,目前员工总数近 900 人,其中 80 %以上是专业技术人员。 品高股份在 2008 年便开…...

.Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置

.Net Core/.Net6/.Net8 &#xff0c;启动配置/Program.cs 配置 没有废话&#xff0c;直接上代码调用 没有废话&#xff0c;直接上代码 /// <summary>/// 启动类/// </summary>public static class Mains{static IServiceCollection _services;static IMvcBuilder _…...

尚硅谷2024最新Git企业实战教程 | Git与GitLab的企业实战

这篇博客是尚硅谷2024最新Git企业实战教程&#xff0c;全方位学习git与gitlab的完整笔记。 这不仅仅是一套Git的入门教程&#xff0c;更是全方位的极狐GitLab企业任务流开发实战&#xff01;作为一应俱全的一站式DevOps平台&#xff0c;极狐GitLab的高阶功能全面覆盖&#xff0…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...