国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解小程序中h5頁面onShow實現及跨頁面通信方案

2024-05-06 15:38:41
字體:
來源:轉載
供稿:網友

小程序webview的現狀

h5頁面在小程序中的交互(跳轉)場景

h5跳轉小程序native頁面(如:調用小程序地址選擇能力,然后返回對應的地址信息給h5頁面) h5跳轉己方業務線的h5頁面(內部頁面交互,方式比較多樣) h5跳轉其它業務線的h5頁面(如:交易流程,相關頁面可能有其他業務線提供)

主要痛點

在完成相關操作后, 頁面狀態需要更新 ,目前常見的更新方式有如下兩種:

第一種:通過url傳參(如:url中加入__isonshowrefresh=1,告訴webview再次onshow時候刷新),把需要傳遞的參數拼接到url中,重新打開url。 第二種:需要跳轉到新的頁面進行數據更新(如:下單頁 - 地址選擇頁 - 新的下單頁)

第一種方案,功能上沒有問題,但會導致頁面刷新,如果頁面操作復雜,需要多次刷新

第二種方案,正向操作時體驗比方案一好,但導致了另外一個問題:操作 跳轉層級過深 ,尤其返回的時候簡直讓人崩潰。

 小程序中,h5頁面打開新頁面方式

我們先來看下小程序中常見的h5跳h5的方式:

方式1:直接用location.href跳轉,返回時候各機型表現不一致,有的會刷頁面,重新執行js,有的會直接展示之前的緩存 方式2:通過路由hash跳轉,返回觸發hashchange,頁面不刷新,js層面重現渲染 方式3:跳轉頁面打開一個新的webview,相當于每個頁面都是一個獨立的webview

我們采用的是方式3,理由如下:

    打開新頁面時的效果更趨近于native間的跳轉(當然新打開的頁面也會重新加載靜態資源,同時這也有另一個問題,一旦你打開10個層級后,再打開新的webview就沒反應了,這個是小程序10層限制) 返回的體驗也更趨近于native,同時保證頁面狀態統一(不會出現有的直接展示,有的會重新執行js) webview通過this.src拿到的鏈接即為當前頁面鏈接,因為如果頁面自行通過路由和location.href跳轉,頁面鏈接變更后,webview并不會知曉,這種方案,webview通過this.src拿到的鏈接始終是當前頁面的鏈接。

由于這種方案可能會達到小程序的10層限制。所以在一些重要頁面建議加入“ 回到首頁 ”的操作,通過這個操作來縮短小程序歷史棧

回到首頁方案簡述

(如果不感興趣這部分可以直接略過)

wx.miniProgram.reLaunch({ url: '/pages/webview/bridge?url=項目首頁地址'})

先聲明,我們webview的路徑是/pages/webview/webview

/pages/webview/bridge是個中轉頁,有如下特點: 該頁面并 不是最終打開h5頁面的webview頁 ,而是一個 中轉頁。

主要用作返回處理

頁面邏輯: 如果是第一次展示,則跳轉/pages/webview/webview,同時把url傳過去,正常打開h5 如果不是第一次展示,說明是從webview返回過來的,直接重定向到小程序首頁
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 深泽县| 卓资县| 郯城县| 永兴县| 江北区| 松潘县| 萨嘎县| 广东省| 饶阳县| 安图县| 邵阳县| 资源县| 大竹县| 监利县| 正镶白旗| 阿拉善盟| 靖江市| 屏边| 安顺市| 即墨市| 敦煌市| 神木县| 南安市| 桃江县| 池州市| 临沂市| 渝中区| 贵溪市| 嘉鱼县| 漯河市| 汕尾市| 乐至县| 大庆市| 忻州市| 南木林县| 慈利县| 揭阳市| 桂平市| 博爱县| 曲松县| 离岛区|