我们的App项目属于混合式开发,ios/Android负责打包,app里面点击时通过地址跳入我们的h5页面。
问题1:ios调用h5方法并传参
//ios调用h5方法,必须将事件暴露在window中供客户端调用,不然ios调用不到我们的方法
onShow() {//这是uniapp的方法,vue的话写到mounted()
window.footprintDelAll=(params)=>{//ios传的参数
this.footprintDelAll(params)
}
},
methods:{
footprintDelAll(params){//
alert(params,typeof(params),'接参类型int、string???')
// uni.showToast({title:"接参"+params ,duration: 2000,icon: 'none',});
}
}
问题2:h5调用ios方法并传参
当我们点击按钮时,给ios/Android传参,callAndroid()、scan.postMessage(str)是给他们传参的方法
goToIndex() {//0去首页
let obj = {
"type":0//0去首页
}
console.log(obj,'0首页')
let str = JSON.stringify(obj)//对象转字符串
let type = uni.getSystemInfoSync().platform
switch (type) {
case 'android':
window.android.callAndroid(str);//传参并告诉Android跳转详情
break;
case 'ios':
window.webkit.messageHandlers.scan.postMessage(str)//scan自定义传参方法名,后台需要用这个名接参
break;
default:
break;
}
}