最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue與原生app的對接交互的方法(混合開發(fā))

 更新時間:2018年11月28日 11:25:25   作者:華猿  
vue開發(fā)h5項目特別是移動端的項目,很多都是打包后掛載在原生APP上的,這篇文章主要介紹了vue與原生app的對接交互的方法,非常具有實用價值,需要的朋友可以參考下

小伙伴們在用vue開發(fā)h5項目特別是移動端的項目,很多都是打包后掛載在原生APP上的,那就少不了與原生交互了,我最近就是在坐這個,踩了一些坑,拿出來給大家分享下。

0.通過url傳輸數據:(一般是在入口頁面?zhèn)飨耡pp的用戶信息進來供vue h5使用)

methods: {
      // 接收url后的數據
      urltext() {
        let loc = location.href;  6         let n1 = loc.length;//地址的總長度
        let n2 = loc.indexOf("=");//取得=號的位置
        let outToken = loc.substr(n2 + 1, n1 - n2);//從=號后面的內容
        console.log(loc,n1,n2,outToken)
        this.outTokenPost(outToken) //傳到處理函數
      },
}

1.原生APP提供一個接口對象的引用(例如一個掃碼的接口,可能還有回調函數以獲得掃碼結果)

思路就是萬物通過window 進行交互

// 將vue組件的要回調的函數暴露出去
mounted:function(){
      
        // 將subscanQRCallBack方法綁定到window下面,提供給外部調用
        window['scanQRCallBack'] = (result) => {
          this.subscanQRCallBack(result)
        }
   
    },

methods:{
      scan(){
        // alert('開始掃碼了')
        window.client.startScanQR('OS與js交互',scanQRCallBack)  // 通過window調用app提供的client對象
      },

      subscanQRCallBack(result){
        // alert('掃碼結果6466:'+result);
        this.scanPost(result)
      },
}

由交互引發(fā)的對vue生命周期的思考

開發(fā)時遇到一個經典問題,需要在頁面剛載入時與app交互判斷是否顯示一個彈窗??此坪芎唵?,進入頁面調一個交互方法即可,但這個需求的解決經歷了幾個步驟:

1、created

因為created時,實例就創(chuàng)建完成了,我開始的選擇是在此生命周期掛載方法并調用交互,結果:頁面閃退,猜測:實例雖有,但模板未編譯掛載,app調用方法失敗導致閃退

2、mounted

第二次將掛載和調用寫在了mounted內,結果:頁面閃退,猜測(誤):掛載和調用靠的太近,可能方法未掛載完就直接調用,導致閃退

3、created+mounted

created內掛載方法,mounted內調用交互,結果:我的ios12無異常,幾乎以為成功時,ios10還是發(fā)生了閃退,猜測ios12的webview對此問題進行了優(yōu)化,考慮兼容性,方案不可行。

4、延時

猜測是window沒有加載完便調用了window下的方法,導致閃退,對交互方法加了1s延時,成功!但體驗一般,因為硬性的定時容易引發(fā)許多不可控的問題,而且彈窗延時的存在導致用戶體驗低下。

5、window.onload

onload 事件會在頁面或圖像加載完成后立即發(fā)生。mounted鉤子里添加代碼window.onload=function(){//調用交互},在window加載完成以后觸發(fā)交互,而且此時間節(jié)點在vue的生命周期是不存在的,也是在mounted、created鉤子后發(fā)生的,這個原生的方法還是很棒的,完美解決~!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue生命周期示例詳解

    Vue生命周期示例詳解

    這篇文章主要為大家詳細介紹了Vue生命周期的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue3 ts組合式API異常onMounted is called when there is no active component解決

    vue3 ts組合式API異常onMounted is called when&

    這篇文章主要為大家介紹了vue3 ts組合式API異常onMounted is called when there is no active component問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Vue3系列之effect和ReactiveEffect?track?trigger源碼解析

    Vue3系列之effect和ReactiveEffect?track?trigger源碼解析

    這篇文章主要為大家介紹了Vue3系列之effect和ReactiveEffect?track?trigger源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • vue axios請求攔截實例代碼

    vue axios請求攔截實例代碼

    axios 是一個基于Promise 用于瀏覽器和 nodejs 的 HTTP 客戶端.這篇文章主要介紹了vue/axios請求攔截的相關知識,需要的朋友可以參考下
    2018-03-03
  • vue 2.0項目中如何引入element-ui詳解

    vue 2.0項目中如何引入element-ui詳解

    element-ui是一個比較完善的UI庫,但是使用它需要有一點vue的基礎,下面這篇文章主要給大家介紹了關于在vue 2.0項目中如何引入element-ui的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • vue+elementui實現(xiàn)表格多級表頭效果

    vue+elementui實現(xiàn)表格多級表頭效果

    這篇文章主要為大家詳細介紹了vue?+?elementui實現(xiàn)表格多級表頭,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 淺析Vue中method與computed的區(qū)別

    淺析Vue中method與computed的區(qū)別

    在new Vue的配置參數中的computed和methods都可以處理大量的邏輯代碼,但是什么時候用哪個屬性,要好好區(qū)分一下才能做到正確的運用vue。這篇文章主要介紹了Vue中method與computed的區(qū)別,需要的朋友可以參考下
    2018-03-03
  • vue開發(fā)中如何在js文件里使用pinia和組件同步

    vue開發(fā)中如何在js文件里使用pinia和組件同步

    在JavaScript文件中封裝涉及到使用Pinia的方法時,發(fā)現(xiàn)Pinia和組件內容并不同步,二者的狀態(tài)是獨立的,解決辦法是,在新建對象的時候,將Pinia作為參數傳入,本文給大家介紹vue開發(fā)中如何在js文件里使用pinia和組件同步,感興趣的朋友一起看看吧
    2024-10-10
  • Vue3中導航守衛(wèi)的使用教程

    Vue3中導航守衛(wèi)的使用教程

    在Vue3中,導航守衛(wèi)(Navigation Guards)用于在路由切換前后執(zhí)行一些操作,例如驗證用戶權限、取消路由導航等,本文主要為大家介紹了vue3中導航守衛(wèi)的使用方法,需要的可以參考下
    2023-08-08
  • Vuejs如何通過Axios請求數據

    Vuejs如何通過Axios請求數據

    這篇文章主要介紹了Vuejs如何通過Axios請求數據,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論

仪陇县| 桃园市| 喀喇沁旗| 赫章县| 成都市| 龙里县| 威宁| 泾川县| 莒南县| 阿克陶县| 崇阳县| 祁门县| 闵行区| 喀喇| 额尔古纳市| 桃源县| 高安市| 芦溪县| 寻乌县| 麻阳| 抚州市| 中江县| 邵阳县| 梅河口市| 湟源县| 林芝县| 财经| 禹城市| 新蔡县| 全州县| 安国市| 固安县| 安庆市| 津南区| 乌拉特前旗| 乐安县| 和政县| 景洪市| 临武县| 汤原县| 博客|