原生app与H5页面之间的交互

【需求,点击“个人中心”登录h5调app登录,app登录后回调h5方法传回来token】

定义H5用来接收token提供给app的方法:

window.h5JAMK_setOpenidCallback = function (openId) {
 localStorage.userinfo=JSON.stringify({openId:openId});
}

1 通过app拦截url,监听

点击“个人中心”,执行:

window.location.href ="linkjstooc://appJAMK_login?"+params;

格式可以跟app共同协定好;

大概步骤就是,点击“个人中心”,app拦截到上面的url后,调用window.h5JAMK_setOpenidCallback并传递参数

2 h5调用app提供的方法:

点击“个人中心”,执行:appJAMK_Login(params)

  appJAMK_Login:function(params){
  
    if (/android/i.test(navigator.userAgent)) {
      console.log('android');
      try {
        if(window.android.appJAMK_Login){
          window.android.appJAMK_Login(params)
        }else{
          alert('没找到android方法')
        }
      } catch (e) {
        console.log(e)
      }
    } else if (/ios|iphone|ipod|pad/i.test(navigator.userAgent)) {
      console.log('ios');
      try {
        if(window.webkit.messageHandlers.appJAMK_Login) {
          window.webkit.messageHandlers.appJAMK_Login.postMessage(params)
        }else{
          alert('没找到ios方法')
        }
      } catch (e) {
        console.log(e)
      }
    }
  },

appJAMK_Login是app提供的方法。

大概步骤就是,点击“个人中心”,h5触发app的appJAMK_Login方法,app方法被触发后执行一系列逻辑,饭后调用window.h5JAMK_setOpenidCallback并传递参数。

猜你喜欢

转载自blog.csdn.net/github_38928905/article/details/86573964