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

发布于 2022-09-12 03:43:47 字数 1448 浏览 26 评论 0

现有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....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小忆控 2022-09-19 03:43:47

cordova试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文