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); } }