H5调用Android和IOS原生方法(vue/uni-app)
Android调用Android原生方法 直接Android.方法名就可以,方法名由原生提供IOS首先在created方法中全局挂载IOS指定的返回函数,用以接收返回数据再去调用IOS的方法 window.webkit.messageHandlers.方法名.postMessage(params) params是传递的参数(如果需要的)uni-app实际开发中 需要在created中注册 onLo
·
- Android
调用Android原生方法 直接
Android.方法名
就可以,方法名由原生提供
- IOS
首先在
created
方法中全局挂载IOS
指定的返回函数,用以接收返回数据
再去调用IOS的方法window.webkit.messageHandlers.方法名.postMessage(params)
params
是传递的参数(如果需要的)
uni-app
实际开发中 需要在created
中注册onLoad
中注册无法生效
- 以调用原生方法获取经纬度为示例
export default {
computed: {
u() {
return navigator.userAgent;
},
isAndroid() {
return this.u.indexOf("Android") > -1 || this.u.indexOf("Adr") > -1;
},
isiOS() {
return !!this.u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
}
},
methods: {
/** 获取当前设备的系统 Android 还是 IOS */
getDeviceType() {
if (this.isAndroid) {
let androidRes = Android.getLnglat();
// 数据处理 xxx
} else if (this.isiOS) {
let params = {
getgps: "getgps",
};
window.webkit.messageHandlers.getGPSInfo.postMessage(params);
}
},
/** window全局注册的ios的返回函数 */
passGPSInfo(res) {
console.log(res)
// 数据处理 xxxx
}
},
created() {
window.passGPSInfo = this.passGPSInfo;
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)