问答

WeixinJSBridge在微信app端是如何实现的,有什么好的做JSBridge

作者:admin 2021-06-22 我要评论

现有h5项目会嵌到app中,其中会有调用app的方法,但是在安卓app中回调方式只能是调window下的方法,比如这样 // 安卓app中getWebView().evaluateJavascript("jav...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

现有h5项目会嵌到app中,其中会有调用app的方法,但是在安卓app中回调方式只能是调window下的方法,比如这样

// 安卓app中
getWebView().evaluateJavascript("javascript:callbackFun_getLocation({"latitude":22,"longitude":113})", new ValueCallback<String>() { @Override public void onReceiveValue(String s) { //调用h5返回的的结果 } })?

// js中 callbackFun_toAppPage只能挂在window下,否则app会找不到此方法
const opt = {"callMethod":"getLocation","parameters":{"name":"getLocation","pageParams":{"callback":"callbackFun_getLocation"}}};
bridge.call('getLocation', opt, function(res) {
  window.callbackFun_getLocation({...res});
})?; 

但是微信jssdk就不会有这种难受的回调方式 http://res.wx.qq.com/open/js/jweixin-1.6.0.js,使用success的回调

wx.getLocation({
  type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
  success: function (res) {
    var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
    var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
    var speed = res.speed; // 速度,以米/每秒计
    var accuracy = res.accuracy; // 位置精度
  }
});

看过一些三方的JSBridge,比如https://github.com/lzyzsd/JsBridge ,但是会替换现有的webview。

请问有什么好的方法能做到和微信调用的方式类似?或者有什么好的做JSBridge方法?

https://developers.weixin.qq....

###

cordova试试

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • WeixinJSBridge在微信app端是如何实现

    WeixinJSBridge在微信app端是如何实现

  • js for循环遍历问题,如何判断每个数组

    js for循环遍历问题,如何判断每个数组

  • input 使用v-model 传值后小数不精确

    input 使用v-model 传值后小数不精确

  • element table 合并属性span-method,

    element table 合并属性span-method,

腾讯云代理商
海外云服务器