js通过Jsbridge,去调用原生客户端的方法时,ios点击无效

271 阅读1分钟

公司最近在做一款借款的app,由于前期产品思维不够完善,导致上线之后,用户借完钱之后,没有充值,导致无法还款的情况,在用户没有更新app的情况下,跳转h5实现充值功能,所以需要客户端暴露方法给h5,判断是原生环境还是浏览器环境,做不一样的操作,

原本和android同事调试完毕,没有问题

由于我是通过事件代理来绑定事件的

$('body').on('click', '.change', function() {
     if (_this.isApp) {
        // 跳转我的页面
        _this.Jsbridge.exec('changeTitleDesc', {
              title: '充值失败'
        })
                    
     } else {
        document.title = '充值失败';
     }
})

而我的页面按钮使用的是div,在ios里面,不是a标签或按钮(input/ button)标签会默认阻止该事件,

导致同样的方法,在android使用正常,而在ios点击无效,

解决方法:

给相对应按钮修改为(a/ input/button)标签,给该元素加:cursor:pointer属性