vue 嵌套到ios中_h5(vue)嵌套ios和android双向交互

本文详细介绍了在移动端H5与客户端交互中如何处理参数传递的问题,特别是针对Android和iOS的不同处理方式。通过封装`bridge.js`,实现了在不同设备上的适配,并给出了具体的调用和注册示例,确保了两端的无缝联调。
摘要由CSDN通过智能技术生成

之前跟客户端联调可能没有注意到细节问题,这次开发又遇到联调,统一整理下,然后自己也封装一套基础代码

注意android以下情况---安卓没带参数,h5端也需要不带参数 ,安卓需要参数,这边也需要携带参数 否则有bug

注意ios情况下 就算ios不需要携带参数,也需要传空

封装bridge.js

// 封装一个bridge.js 文件 ,然后并把这个文件在main.js 挂载到vue原型上

import utils from '@extend/util/util.js'

// utils.deviceType 是获取设备类型的方法

export default {

callhandler (name,callback,data) {

let result = '';

if(utils.deviceType === 'Android'){

if(data){

// 这是android提前与安卓开发人员协商好

result = window.android[name](data);

}else{

window.android[name]();

}

}

if(utils.deviceType === 'IOS'){

result = window.webkit.messageHandlers[name].postMessage(data);

}

// 这里考虑到可能有的api有返回值,所以返回了个result

callback && callback(result)

},

registerhandler (name, callback) {

if(utils.deviceType === 'Android' || utils.deviceType === 'IOS'){

window[name] = res => {

let data = '';

if(res){

data = JSON.parse(JSON.stringify(res))

}

callback && callback(data)

}

}

}

}

H5调用客户端

// 只需要一句话调用即可

this.$bridge.callhandler('finish');

实际应用--在填写完资料后通知客户端

872016a40af3c689a5c75cbb17f2f659.png

客户端调H5

// 需要提前先注册

this.$bridge.registerhandler('setUserInfo', () => {

this.commit() // commit写在本地的提交方法

})

实际应用--在填写完资料后客户端点击右上角保存按钮

bf7a91f1270f6a326ee2c02aad547e6d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值