之前也总结过h5调用原生的方法,但是写的不全。像调完原生之后,原生往往会有返回值,或者根据返回值的不同回调h5的方法。
1、判断机型
getType() {
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android安卓
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios苹果
if (isAndroid) {
//如果是安卓
let obj = {
param:'123'
}
//androidMethodName是安卓定义的方法名称 跟h5无关
Android.androidMethodName(obj)
} else if (isiOS) {
//如果是IOS
let obj = {
param:'123'
}
//androidMethodName是IOS定义的方法名称 跟h5无关
window.webkit.messageHandlers.IOSMethodName.postMessage(obj);
}
},
2、调取原生方法之后的回调方法(回调的方法名跟原生约定好,你们方法名需一致,譬如此处规定接收方法为getResult
),在created
里面注册一下回调的方法
created() {
window.getResult = this.getResult //注册到windows 调完原生方法之后 走h5的方法
},
methods: {
getResult(res){
//调用完成原生方法后,会走到这个方法
}
}
网友评论