Loading

H5与APP(安卓及IOS)交互方法

 

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

  

posted @ 2020-03-11 16:07  冯叶青  阅读(1350)  评论(0编辑  收藏  举报