H5与原生app交互

H5与原生app交互
原生调h5方法:
h5:注册方法,绑定在windowns上:如windown[方法名] = ()=>{}
h5调原生方法,需要区分安卓和ios

/** 获取设备系统类型 */
export const LoginPhoneType = () => {
  var sUserAgent, isIOS, isAndroid, isIpad;
  sUserAgent = navigator.userAgent.toLowerCase();

  isIOS = sUserAgent.match(/iphone os/i) == 'iphone os';//|| deviceInfo.systemName === 'iPhone';
  isAndroid = sUserAgent.match(/android/i) == 'android';//|| deviceInfo.systemName === 'Android';
  isIpad = sUserAgent.match(/ipad/i) == "ipad";

  if (isAndroid) {
      return 'android';
  } else if (isIOS || isIpad) {
      return 'ios';
  } else {
      return null;
  }
};

//调用原生app方法
export const getAddress = () => {
    const jzbank = window.jzbank;
    if (!window.webkit && !jzbank) return;

    const platform = LoginPhoneType();
    if (platform === "ios") window.webkit.messageHandlers.getAddress.postMessage();
    else if (platform === "android") jzbank.getAddress();
};



//  h5 注册的方法
 window.getAddressResult=(res)=>{
     console.log(res) 
 }
posted @ 2023-06-16 16:54  张尊娟  阅读(33)  评论(0编辑  收藏  举报