H5与APP(安卓及IOS)交互方法
/**
* H5与APP(安卓及IOS)交互方法
* fn:方法名
* params:参数 对象类型
* ios 接收到的是{key:value}格式
* 安卓接收到的是 value
* */
export const dispatchAppFn = function ({fn,params} = {}) {
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isAndroid) {
let androidParams = ''
for(let key in params){
androidParams+=`"${params[key]}",`;
}
if(androidParams.length){
let params = androidParams.substring(0,androidParams.length-1);
eval(`window[fn].postMessage(${params})`)
}else {
window[fn].postMessage();
}
} else if (isiOS) {
window.webkit.messageHandlers[fn].postMessage(params);
}
}