写点什么

jsbridge-n22 使用指南

作者:小鑫同学
  • 2022-10-13
    北京
  • 本文字数:1596 字

    阅读完需:约 5 分钟

jsbridge-n22使用指南

大家好,我是小鑫同学。一位从事过 Android 开发混合开发,现在长期从事前端开发的编程爱好者,我觉得在编程之路上最重要的是知识的分享,所谓三人行必有我师。所以我开始在社区持续输出我所了解到、学习到、工作中遇到的各种编程知识,欢迎有想法、有同感的伙伴加我fe-xiaoxin微信交流~

jsbridge-n22 使用指南

演示APK下载地址

1. 在模块级别的build.gradle添加 jsbridge-n22 依赖

如无法更新全依赖包,请配置 maven 地址:dl.bintray.com/spoon2014/m…


//仅包含WebView中Js与Java交互,插件需按指定格式编写implementation 'com.ospoon:jsbridge-n22:1.0.13'
//包含WebView中Js与Java交互和基础插件,节省开发implementation 'com.ospoon:jsbridge-plugins-n22:1.0.13'
复制代码

2. 创建插件

  1. 新建插件 Java 类(如:ToastBridgeHandler),并继承自 BaseBridgeHandler

  2. 在新建的插件 Java 类上使用注解@BridgePlugin(name="xxx")标注插件名称

  3. 插件各部分简介```/插件名称,js 调用时会使用到/@BridgePlugin(name="toast")public class ToastBridgeHandler extends BaseBridgeHandler {

  4. }

  5. Application的子类onCreate方法中注册插件```/*参数支持同时传入多个*/Bridge.INSTANCE.registerHandler(ToastBridgeHandler.class);

  6. ```

3. 一键启动

  1. BridgeWebViewActivity```BridgeWebViewActivity.start(this,"http://192.168.199.163:9999");

  2. X5WebViewActivity```X5WebViewActivity.start(this,"http://192.168.199.163:9999");

  3. ```

4. JS 调用 Java(js-native-n22对调用进行了封装)

window.WebViewJavascriptBridge.callHandler(    'toast'                     //桥注册的名称ID    , { text: '你好啊赛利亚', duration: 0 }        //传递给原生的参数    , function(responseData) {  //异步回调接口        console.log('native return->'+responseData);    });
复制代码

5. 其他

  1. 回调数据到 Js


在定义的插件中可以取到 callBack 对象,用于将数据回调到 H5 使用方式:


  1. 成功情况:```callBack.onCallBack(ResultUtil.success(JSONObject));

  2. 失败情况:```callBack.onCallBack(ResultUtil.error("1","取消识别"));callBack.onCallBack(ResultUtil.error("1",e.getMessage()));

  3. 使用上下文```在定义的插件中可以取到 getActivity(), new Intent(getActivity(), CaptureActivity.class);

  4. 启动一个带回调的 Activity```在定义的插件中可以取到 getActivity(),尝试使用 getActivity().startActivityForResult()操作

  5. 申请权限```申请权限已经在 BaseBridgeHandler 操作,只需要将申请的权限通过 authorization()返回即可,注意权限使用了com.yanzhenjie.permission:support:2.0.0,所以权限常量请在com.yanzhenjie.permission.runtime.Permission中查看

  6. ```

6. 特殊配置

  1. 如需使用高德定位插件需配置高德定位 apikey 到 app 的 AndroidManifest.xml

  2. 部分插件需使用到文件存储,需配置一下信息 app/src/main/res/xml/provider_paths.xml

  3. app的AndroidManifest.xml

  4. 如需使用语音听写插件,需在 Application 中进行初始化 Appid 操作

  5. 如需进行移动统计需在 app 模块的AndroidManifest.xml中进行添加

  6. 如需使用pushData插件接收 H5 端的数据,插件中使用的广播形式,集成模块后定义广播接收器并动态注册接收数据

  7. 如需要使用分享功能请将微信分享的 APPKEY 配置到 app 的 AndroidManifest.xml 参照如下


注意事项:


  1. 页面提示 ERR_CACHE_MISS:请设置网络权限<uses-permission android:name="android.permission.INTERNET"/>

  2. 页面提示 ERR_CLEARTEXT_NOT_PERMITTED:请在AndroidManifest.xmlapplication节点增加android:usesCleartextTraffic="true"

  3. 如发生样式冲突请在 app 模块中的添加 AndroidManifest.xml 文件的 application 节点添加tools:replace="android:theme"

  4. 提交代码提示validate-commit-msg: command not found,请全局安装插件,执行命令:cnpm install validate-commit-msg -g,因内部包含 vue 项目中配置提交钩子


使用方案为JSBridge-Android


发布地址bintray


发布于: 刚刚阅读数: 4
用户头像

小鑫同学

关注

⚡InfoQ签约作者 2018-12-10 加入

还未添加个人简介

评论

发布
暂无评论
jsbridge-n22使用指南_前端_小鑫同学_InfoQ写作社区