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

小程序與內(nèi)嵌webview的數(shù)據(jù)交互方案詳解

 更新時(shí)間:2024年09月27日 09:56:02   作者:霹靂桃  
這篇文章主要介紹了小程序與內(nèi)嵌webview的數(shù)據(jù)交互方案,為實(shí)現(xiàn)H5頁(yè)面到小程序的無(wú)縫切換,技術(shù)方案包含使用webview交互,特別是低碼C端表單頁(yè)面的處理,需要的朋友可以參考下

一、目的

  • 我們要就將h5切換到小程序,由于時(shí)間問(wèn)題,一些頁(yè)面不得不通過(guò)webvie承接,所以這就涉及到h5和webview交互的問(wèn)題。(后期把大部分需要交互的頁(yè)面遷移到小程序了,這都小問(wèn)題。)
  • 最重要的就是低碼c端填報(bào)頁(yè)(表單)由于技術(shù)問(wèn)題無(wú)法遷移到小程序,必須通過(guò)webview承接,里邊有一個(gè)地圖定位組件需要在小程序中實(shí)現(xiàn),最后攜帶定位數(shù)據(jù)到表單中回填,這里面有幾個(gè)關(guān)鍵點(diǎn)
    • 小程序定位結(jié)束,攜帶數(shù)據(jù)到表單回填的時(shí)候不刷新表單,需要保留表單已經(jīng)填的內(nèi)容
    • h5與小程序的數(shù)據(jù)傳遞。

二、技術(shù)方案

  • 小程序針對(duì)webview其實(shí)是出了一套數(shù)據(jù)交互的方案(postMessage),具體可以參考官網(wǎng)web-view

  • 但是它只有在 小程序后退、組件銷毀、分享、復(fù)制鏈接 這幾種特定情況下小程序webview中才能接收到。結(jié)果多方面研究調(diào)查,最終確定了下面的方法。

    • 1.h5引入sdk,通過(guò)skd中的方法做頁(yè)面跳轉(zhuǎn)并攜帶參數(shù),因?yàn)槲覀兪堑痛a平臺(tái),表單是動(dòng)態(tài)的,所以這塊攜帶定位數(shù)據(jù)、組件key(數(shù)據(jù)回填時(shí)能準(zhǔn)確找到)。
    • 2.在小程序做定位結(jié)束之后,重定向到一個(gè)h5的中間頁(yè),參數(shù)拼接在url上邊,在中間頁(yè)做一下幾個(gè)處理。
      • a.獲取到url參數(shù)key和val,將key和val緩存到localStorage(分別存分兩個(gè))

            if (route.query.key) {
              window.localStorage.setItem(loactionComponentKey, `${route.query.key}`)
              window.localStorage.setItem(
                `${loactionComponentValuePrefix}${route.query.key}`,
                `${route.query.value}`
              )
            }
        
      • b.然后做goback,因?yàn)轫?yè)面有緩存,在頁(yè)面回退之后表單值還存在,注意:在這個(gè)地方要用 小程序sdk中的回退navigateBack

    • 3.在表單頁(yè)監(jiān)聽localStorage,獲取localStorage中的表單值,做表單回填。
    // 單獨(dú)頁(yè)面組件 渲染賦值
      window.addEventListener('storage', function (e) {
        const locKey = window.localStorage.getItem(loactionComponentKey)
    
        if (!locKey) return
    
        const value = window.localStorage.getItem(`${loactionComponentValuePrefix}${locKey}`)
    
        if (locKey && value) {
          // setValue
          window.localStorage.removeItem(`${loactionComponentValuePrefix}${locKey}`)
          window.localStorage.removeItem(loactionComponentKey)
        }
      })
    
  • 如果是hash模式的路由跳轉(zhuǎn)用不著這么麻煩,改變路徑參數(shù)不會(huì)觸發(fā)頁(yè)面刷新,所以可以通過(guò)修改webview的url就能實(shí)現(xiàn)了。

三、總結(jié)

  • 1、需要三個(gè)頁(yè)面 h5、h5中間頁(yè)、小程序
  • 2、h5->小程序 通過(guò)sdk的方法跳轉(zhuǎn) 攜帶參數(shù) 小程序在 onload 中獲取參數(shù)
  • 3、小程序->h5中間頁(yè) 通過(guò)sdk的方法重定向 攜帶路徑參數(shù) 存到story
  • 4、h5中間頁(yè)->h5 使用sdk方法回退
  • 5、h5 監(jiān)聽story,做數(shù)據(jù)處理

到此這篇關(guān)于小程序與內(nèi)嵌webview的數(shù)據(jù)交互的文章就介紹到這了,更多相關(guān)小程序與內(nèi)嵌webview數(shù)據(jù)交互內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一個(gè)封裝js代碼-----展開收起效果示例

    一個(gè)封裝js代碼-----展開收起效果示例

    本文為大家介紹下一個(gè)封裝展開收起效果js代碼;引用jQuery的框架,兼容ie6以上,火狐,谷歌,ie6沒(méi)有測(cè)試大家可以自己測(cè)試
    2013-07-07
  • TypeScript中的類型運(yùn)算符實(shí)現(xiàn)

    TypeScript中的類型運(yùn)算符實(shí)現(xiàn)

    TypeScript 是一種強(qiáng)類型語(yǔ)言,它通過(guò)使用類型運(yùn)算符來(lái)強(qiáng)化類型安全性,本文主要介紹了TypeScript中的類型運(yùn)算符實(shí)現(xiàn),感興趣的可以了解一下
    2023-10-10
  • JS中appendChild追加子節(jié)點(diǎn)無(wú)效的解決方法

    JS中appendChild追加子節(jié)點(diǎn)無(wú)效的解決方法

    這篇文章主要給大家介紹了關(guān)于JS中appendChild追加子節(jié)點(diǎn)無(wú)效的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)
    2018-10-10
  • Array數(shù)組對(duì)象中的forEach、map、filter及reduce詳析

    Array數(shù)組對(duì)象中的forEach、map、filter及reduce詳析

    這篇文章主要給大家介紹了關(guān)于Array數(shù)組對(duì)象中forEach、map、filter及reduce的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用array數(shù)據(jù)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 小程序多文件上傳 Tdesign的過(guò)程

    小程序多文件上傳 Tdesign的過(guò)程

    眾所周知,小程序文件上傳還是有點(diǎn)麻煩的,其實(shí)主要還是小程序?qū)Φ慕涌谟兄T多的不便,比如說(shuō),文件不能批量提交,只能一個(gè)個(gè)的提交,小程序的上傳需要專門的接口,現(xiàn)在給大家分享小程序多文件上傳 Tdesign的方法,感興趣的朋友一起看看吧
    2023-11-11
  • Ionic2開發(fā)環(huán)境搭建教程

    Ionic2開發(fā)環(huán)境搭建教程

    這篇文章主要為大家詳細(xì)介紹了Ionic2開發(fā)環(huán)境的搭建教程,文中步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 一行JavaScript代碼如何實(shí)現(xiàn)瀑布流布局

    一行JavaScript代碼如何實(shí)現(xiàn)瀑布流布局

    這篇文章主要給大家介紹了如何通過(guò)一行JavaScript代碼實(shí)現(xiàn)瀑布流布局的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳解如何用babel轉(zhuǎn)換es6的class語(yǔ)法

    詳解如何用babel轉(zhuǎn)換es6的class語(yǔ)法

    這篇文章主要介紹了詳解如何用babel轉(zhuǎn)換es6的class語(yǔ)法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 淺析JavaScriptSerializer類的序列化與反序列化

    淺析JavaScriptSerializer類的序列化與反序列化

    本篇文章主要介紹了JavaScriptSerializer類 對(duì)象序列化與反序列化的方法、屬性以及實(shí)例代碼,有需要的朋友可以參考一下
    2016-11-11
  • 解決小程序無(wú)法觸發(fā)SESSION問(wèn)題

    解決小程序無(wú)法觸發(fā)SESSION問(wèn)題

    這篇文章主要介紹了解決小程序無(wú)法觸發(fā)SESSION問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

什邡市| 旬阳县| 新竹市| 南雄市| 商水县| 罗城| 栖霞市| 分宜县| 河源市| 太和县| 田林县| 辛集市| 开鲁县| 武城县| 临泉县| 建德市| 康马县| 德令哈市| 旬邑县| 鹿邑县| 马山县| 澄江县| 固阳县| 衡南县| 那曲县| 六盘水市| 漳浦县| 江安县| 前郭尔| 泗阳县| 英吉沙县| 平果县| 蓝山县| 宁波市| 叶城县| 潼南县| 托克逊县| 舒城县| 二连浩特市| 绿春县| 贺州市|