JS跟APP交互——H5调用原生APP的方法

js向app传值问题

最近做的H5项目是需要嵌入到APP内使用的,这就涉及到js跟app交互的问题,我这边需要传值给app,以下是我在做项目过程中传值的方法,仅供参考。

解决方法

AppData这个JSON对象是我们需要向后台传的所有值,同时我们需要判断终端设备,IOS终端需要加上window.webkit.messageHandlersdeliveryClueID这个是原生方法名。

var AppData = Object.assign(
                    {loanID:this.loanId},
                    {orderState:this.orderState}
                  );
              var u = navigator.userAgent,
                app = navigator.appVersion;
              //android终端或者uc浏览器
              var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; 
              //ios终端
              var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X)/); 
              
              if(isiOS){
                window.webkit.messageHandlers.deliveryClueID.postMessage(AppData);
              }else if(isAndroid){
                android.deliveryClueID(JSON.stringify(AppData));
              }

或者你还可以这样?
这是网上别人方法,JS调用Android原生。

//第一种
JavaScript:android.原生方法名(params);
//第二种
window.android.原生方法名(params);

然后APP端需要做如下配置。
这是 IOS配置跟调用方法,deliveryClueID是原生方法名,做IOS的大佬应该知道的。

let conf = WKWebViewConfiguration()
        conf.userContentController = WKUserContentController()
        conf.preferences.javaScriptEnabled = true
        conf.selectionGranularity = WKSelectionGranularity.character
        /// h5 调用 swift 提供的方法
        conf.userContentController.add(self, name: deliveryClueID)
        webView = WKWebView( frame: CGRect(x:0, y:KHeight_NavBar,width:kScreenWidth, height:kScreenHeight - KHeight_NavBar),configuration:conf)

Android怎么配置我就不知道了emmm。。。等我知道了再更吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值