H5+app 安卓原生插件开发

目录

1、参考文档

2、离线打包操作步骤

1、下载SDK

2.打开android studio导入项目

3.修改相关参数

1.修改AndroidManifest.xml文件

2.修改dcloud_control.xml文件

3.修改strings.xml

4.修改build.gradle

4.运行

 3原生拓展

1.java原生代码编写

2.配置文件

1.修改dcloud_properties.xml文件

2.修改manifest.json

3.编写调用的js文件

4.调用

5.调试

4.使用场景


1、参考文档

https://www.cnblogs.com/wenhui92/p/9052308.html#%E5%BC%80%E5%8F%91%E6%8F%92%E4%BB%B6

https://nativesupport.dcloud.net.cn/NativePlugin/README

https://ask.dcloud.net.cn/article/66

2、离线打包操作步骤

1、下载SDK

       https://nativesupport.dcloud.net.cn/AppDocs/download/android

下载sdk后解压

2.打开android studio导入项目

项目创建可以参照官方文档说明,坑比较多,建议直接打开例子来进行操作

3.修改相关参数

1.修改AndroidManifest.xml文件

1.修改meta-data

需要登录开发者中心获取

 

 

将id复制到AndroidManifest.xml中

<meta-data
            android:name="dcloud_appkey"
            android:value="应用的Android" />

 2.修改包名

包名在离线打包管理处获取

 将页面上跟包名有关的都改成自己的

 3.修改应用名称以及图片、启动图片

splash为启动图片,名字是固定的,替换就好

2.修改dcloud_control.xml文件

修改appid

 

3.修改strings.xml

改成应用名称

4.修改build.gradle

1.修改defaultConfig

版本号和code最好与manifest.json保持一致

2.修改signingConfigs

相关信息可以从这里获取

4.运行

将apps文件删除

 然后自己在目录下新建个apps文件夹

打开HbuilderX将项目本地打包,选择本地打包->生成本地打包app资源

打包好后会生成一个路径,【appid】\www。操作正确的话appid和我们之前写的appid是一致的,若不一致,请看manifest.json中配置的id

将打包的文件复制到apps路径下,最终路径是 apps/【appid名称】/www

ok.配置结束直接运行。

 3原生拓展

离线打包没问题后就可以开始拓展原生插件了

1.java原生代码编写

文件需要写在java目录下,新建目录,java新建文件

 举个栗子

拓展类需要继承StandardFeature

写方法

方法的参数是固定的IWebview和JSONArray,方法名随意

public void expandFunction(IWebview pWebview, JSONArray array){

    }

接下就可以在该方法下编写需要的功能代码了

说明一下

public void expandFunction(IWebview pWebview, JSONArray array){
        /*
        *
        *这里是方法的内容
        *
        * */

        String pCallBackID = array.optString(0);
        JSUtil.execCallback(pWebview, pCallBackID, "这里是内容!", JSUtil.OK, true);

        JSUtil.execCallback(pWebview, pCallBackID, "打印失败!", JSUtil.ERROR, true);

    }
类型说明
IWebview调用方法的页面
JSONArray调用方法时传进来的参数类似字符串数组 ,["数据1",“数据2”]
pCallBackID需要回调时用到,若不需要可以不要,在js传数据时传过来的。
JSUtil.execCallback回调js定义的成功、失败的方法,并传数据

2.配置文件

写完java代码后需要在配置文件中添加相关拓展功能

1.修改dcloud_properties.xml文件

在features中添加

在services中添加

2.修改manifest.json

3.编写调用的js文件

document.addEventListener( "plusready",  function(){
    var _BARCODE = 'ExpandDemo',
    var expandObj = {
		doExpandFunction:function(option){
			let successF = typeof option.successCallback !== 'function'?null:function(mes){
				option.successCallback(args);
			}
			let errorF = typeof option.errorCallback !== 'function'?null:function(mes){
				option.errorCallback(args);
			}
			
			let callbId = plus.bridge.callbackId(successF, errorF);
			return plus.bridge.exec(_BARCODE,"expandFunction",[callbId,option.jsonString]);
		},
       
    };
    window.plus.ExpandDemo = expandObj;
}, true);

说明一下 

变量说明
_BARCODE在配置文件配置的名字
callbId通过plus.bridge.callbackId(successF, errorF);注册后返回的callbackId
方法说明
plus.bridge.callbackId(successF, errorF);注册成功回调方法和失败回调方法,返回callbackId
plus.bridge.exec.exec(_BARCODE,"expandFunction",[callbId,option.jsonString]);触发调用定义的方法.exec("模块名","方法名",["参数1","参数2"])

4.调用

5.调试

debug调试

 

 成功!

4.使用场景

        设备上的功能需要使用原生开发时,可以要求对方发送原生安卓用例的demo,比如人脸识别,身份证读取,打印等等。看demo是如何调用打印、人脸识别的功能。

        了解怎么使用后,将demo引用的libs包导入后我们离线打包的工程下

然后在我们扩展的方法中按demo调用即可。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值