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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM