之前也总结过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){

//调用完成原生方法后,会走到这个方法

}

}

今天是国庆,愿祖国繁荣富强,吾辈自强不息。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐