webviewjavascriptbridge android ios,js与ios交互使用WebViewJavascriptBridge如何写多个函数

//js与webview交互初始化

function setupWebViewJavascriptBridge(callback) {

if (window.WebViewJavascriptBridge) {

return callback(WebViewJavascriptBridge);

}

if (window.WVJBCallbacks) {

return window.WVJBCallbacks.push(callback);

}

window.WVJBCallbacks = [callback];

var WVJBIframe = document.createElement('iframe');

WVJBIframe.style.display = 'none';

WVJBIframe.src = 'https://__bridge_loaded__';

document.documentElement.appendChild(WVJBIframe);

setTimeout(function () {

document.documentElement.removeChild(WVJBIframe)

}, 0)

}

//关注按钮点击交互

setupWebViewJavascriptBridge(function (bridge) {

function followChange(data) {

if (data == 1) {

$(".btnFollow").removeClass("btnFollow-yes").addClass("btnFollow-no");

} else {

$(".btnFollow").removeClass("btnFollow-no").addClass("btnFollow-yes");

}

}

$(".btnFollow").click(function () {

var followStaus=1;

if ($(this).is('.btnFollow-no')) {

followStaus=1;

} else {

followStaus=2;

}

bridge.callHandler(

'callMobileHandler',

{"followStaus": followStaus, "deviceType": "ios"},

function (response) {

if(response.followStaus==1){

$(this).removeClass("btnFollow-yes").addClass("btnFollow-no");

}else{

$(this).removeClass("btnFollow-no").addClass("btnFollow-yes");

}

});

});

bridge.registerHandler('callJSHandler', function (data, responseCallback) {

followChange(data.followStaus);

// responseCallback(responseData);

});

//以上代码实现的功能可以正常运行,以下代码实现的功能没有生效

var imgs = document.getElementsByTagName("img");

//传递图片src数组

var imgsSrc=imgs.map(function (value,index) {

return value.src

});

bridge.callHandler(

'callMobileHandler',//名称待换

{"imgList": imgsSrc, "deviceType": "ios"},//参数待换

function (response) {//假设返回的src数组为imgList

for(var i = 0;i< response.imgList.length; i++){

imgs[i].src=response.imgList[i];

}

});

//js注册函数,没用可删除

/*bridge.registerHandler('callJSHandler', function (data, responseCallback) {

responseCallback(responseData);

});*/

//图片点击事件

for(var i = 0;i< imgs.length; i++){

imgs[i].onclick(function(){

bridge.callHandler(

'callMobileHandler',//名称待换

{"currentImg": imgs[i].src, "deviceType": "ios"},//参数待换

function (response) {

//内容待写

});

//js获得ios端参数函数,没用可删除

/*bridge.registerHandler('callJSHandler', function (data, responseCallback) {

responseCallback(responseData);

});*/

});

}

});

我想问一下我想写多个callhandle函数,是应该调用多次这个桥接函数呢,还是在一个函数里重复写几遍呢,或者是其他方法?目前只有第一个功能实现了,剩下的传递图片数组和图片点击事件都没有传递过去,该怎么办?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值