【需求,点击“个人中心”登录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并传递参数。