扩展插件开发实例_Android
1. 本实例Demo功能
1.1 简介
为了帮助开发者快速上手,在开发指南demo的基础中增加功能实例,让开发者更好的理解项目结构和开发流程,且开源出了部分工具类,供开发者使用,若在此工程中开发建议删除实例部分功能代码,或者直接在开发指南纯净版demo中开发。
1.2 开发环境
- Android Stuido3.5或更高版本
- window7/window10/mac
1.3 实例功能介绍
- 获取app信息,如版本、包名、名称等
- 电子签名功能,与安卓原生页面交互
1.4 下载SDK
2. 模块开发示例
注:此实例是在纯净版demo基础上进行开发,以下着重描述不同点。
2.1 项目结构
编译完成后,项目工程结构如下:

2.2 功能代码
1)获取app信息
当调用入口为"ckme"时,加载获取app信息代码,可直接在当前java文件中编辑,如下图:

调用成功后,返回获取到的信息:

不管成功还是失败,按照规范都应该调用callbackContext返回正确值或者错误提示,当返回数据类型为JSONObject类型时,前端在获取返回值时需要加上JSON.stringify(success)。
调用示例:
navigator.test.ckme(
function (success) {
alert(JSON.stringify(success));
},
function (error) {
alert(JSON.stringify(error));
});
2)电子签名功能模块
和上述功能不同,他需要接收传入的值,在调用时传入参数示例如下:
var postion={'screenNum':'0','imgPath':'0'};
navigator.test.dialog(
function(success){
alert(JSON.stringify(success))
},function(error){},postion);
这里使用了参数解析工具JsonUtil,可以参考,代码如下图:

页面跳转配置:
1)上下文参数已定义,可直接使用activity,示例代码:
MainTwoActivity.start(activity,screenNum,imgPath);
2)原生页面配置
清单文件中写入位置如图:

3)关于引入依赖
以本demo为例,使用了eventbus,在引入之前,先在buils.gradle中寻找是否有提供此依赖,如果有的话,直接使用,保存版本一致,不然会造成冲突,如图:

另外,需要在plugin.json配置文件中添加此依赖,如图:

[!WARNING]
- 如果引入有其他module的话,建议代码拆分到modile_ext_plugin中,不然需要打包多个aar文件,可能造成资源丢失。