天天看點

H5與ios和安卓資料互動

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傳遞的參數,直接指派就可以用了
	}