jsbridge-n22 使用指南
大家好,我是小鑫同学。一位从事过 Android 开发、混合开发,现在长期从事前端开发的编程爱好者,我觉得在编程之路上最重要的是知识的分享,所谓三人行必有我师。所以我开始在社区持续输出我所了解到、学习到、工作中遇到的各种编程知识,欢迎有想法、有同感的伙伴加我fe-xiaoxin微信交流~
jsbridge-n22 使用指南
1. 在模块级别的build.gradle
添加 jsbridge-n22 依赖
如无法更新全依赖包,请配置 maven 地址:dl.bintray.com/spoon2014/m…
2. 创建插件
新建插件 Java 类(如:ToastBridgeHandler),并继承自 BaseBridgeHandler
在新建的插件 Java 类上使用注解
@BridgePlugin(name="xxx")
标注插件名称插件各部分简介```/插件名称,js 调用时会使用到/@BridgePlugin(name="toast")public class ToastBridgeHandler extends BaseBridgeHandler {
}
在
Application
的子类onCreate
方法中注册插件```/*参数支持同时传入多个*/Bridge.INSTANCE.registerHandler(ToastBridgeHandler.class);```
3. 一键启动
BridgeWebViewActivity```BridgeWebViewActivity.start(this,"http://192.168.199.163:9999");
X5WebViewActivity```X5WebViewActivity.start(this,"http://192.168.199.163:9999");
```
4. JS 调用 Java(js-native-n22对调用进行了封装)
5. 其他
回调数据到 Js
在定义的插件中可以取到 callBack 对象,用于将数据回调到 H5 使用方式:
成功情况:```callBack.onCallBack(ResultUtil.success(JSONObject));
失败情况:```callBack.onCallBack(ResultUtil.error("1","取消识别"));callBack.onCallBack(ResultUtil.error("1",e.getMessage()));
使用上下文```在定义的插件中可以取到 getActivity(), new Intent(getActivity(), CaptureActivity.class);
启动一个带回调的 Activity```在定义的插件中可以取到 getActivity(),尝试使用 getActivity().startActivityForResult()操作
申请权限```申请权限已经在 BaseBridgeHandler 操作,只需要将申请的权限通过 authorization()返回即可,注意权限使用了
com.yanzhenjie.permission:support:2.0.0
,所以权限常量请在com.yanzhenjie.permission.runtime.Permission
中查看```
6. 特殊配置
如需使用高德定位插件需配置高德定位 apikey 到 app 的 AndroidManifest.xml
部分插件需使用到文件存储,需配置一下信息
app/src/main/res/xml/provider_paths.xml
app的AndroidManifest.xml
如需使用语音听写插件,需在 Application 中进行初始化 Appid 操作
如需进行移动统计需在 app 模块的
AndroidManifest.xml
中进行添加如需使用
pushData
插件接收 H5 端的数据,插件中使用的广播形式,集成模块后定义广播接收器并动态注册接收数据如需要使用分享功能请将微信分享的 APPKEY 配置到 app 的 AndroidManifest.xml 参照如下
注意事项:
页面提示 ERR_CACHE_MISS:请设置网络权限
<uses-permission android:name="android.permission.INTERNET"/>
页面提示 ERR_CLEARTEXT_NOT_PERMITTED:请在
AndroidManifest.xml
的application
节点增加android:usesCleartextTraffic="true"
如发生样式冲突请在 app 模块中的添加 AndroidManifest.xml 文件的 application 节点添加
tools:replace="android:theme"
提交代码提示
validate-commit-msg: command not found
,请全局安装插件,执行命令:cnpm install validate-commit-msg -g
,因内部包含 vue 项目中配置提交钩子
使用方案为JSBridge-Android
发布地址bintray
版权声明: 本文为 InfoQ 作者【小鑫同学】的原创文章。
原文链接:【http://xie.infoq.cn/article/8387ce6735468595e9d575040】。文章转载请联系作者。
评论