H5與ios和安卓資料互動
在開發中會遇到很多app中嵌套H5頁面,是以就會遇到很多H5與安卓互動的問題,下面就是遠端的方法,我的頁面遇到的少,如果多的話,可以用第三方內建,那樣更友善,如果遇到後續我會追更的。
第一步:H5前端判斷ios還是android
getType() {
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android安卓
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios蘋果
if (isAndroid) {
return 'android'
} else if (isiOS) {
return 'ios'
}
},
第二步:如果是安卓像H5傳送資料的話,一個方法就可以了,但是如果是ios那就要釋出訂閱,
ios:
1.H5先調用ios的方法
2.ios監聽到再調用H5的方法,這裡要注意,如果是用vue的話,那就要吧方法給window
//吧vue方法挂再window下
mounted(){
window.getInfo = this.getInfo
},
onLoad() {
let navi = this.getType()
if(navi==='android'){
this.info = JSON.parse(window.android.getToken()); //安卓
}else{
window.webkit.messageHandlers.getToken.postMessage(null) //ios監聽
}
},
getInfo(info){
this.info = JSON.parse(info) //ios調用的方法,info是ios傳遞的參數,直接指派就可以用了
}