混合開發(APP)

最近在開發一款APP,在app中嵌入H5,在配合過程中踩了兩個小坑。

1.由於混合開發,(登錄app負責),那麼在頁面完成後對接接口的時候需要傳一個token值,都知道token是登錄時生成的,此時就需要APP將該值傳給我,app大佬表示在url中有給傳,截取token傳值後token爲null,綁到input中顯示token有值,那麼這是怎麼回事。仔細對比發現截取的toke和url中的token有出入,就是因爲該token中有特殊字符如:加減乘除等被編碼了,獲取後沒有解碼導致。最後還是寫了個方法給APP,讓其調用該方法時將token值傳過來。(當然也可以解碼來解決)。

2.寫方法給APP調用,這裏必須將該方法掛載到window下APP才能調用。

如:

window['getLocationJson']=(jsonData)=>{//用於接收APP傳回來的json字符串,然後將其解析爲json對象(給APP調用**********需要掛載到window下APP才能調用的到)
  let self=this;
  self.fromApp=JSON.parse(jsonData);
  self.getAppArea=JSON.parse(jsonData).Location;
}

3.調用APP的方法(判斷安卓和ios)

if( /(Android)/i.test(navigator.userAgent) ){
  window.android.goLocation('1');    //安卓
}else{
  window.webkit.messageHandlers.goLocation.postMessage('1');  //Ios
}

4.在H5中用a標籤或router-link做跳轉時安卓不能觸發,後面改爲點擊事件跳轉(其實是安卓大佬禁用了重定向)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章