摘要:場景在小程序其它頁面做了操作,數據發生改變,回到頁面時需要更新里面的數據。由于小程序沒有提供與的實時通信能力,因此刷新頁面是個可考慮的做法。小結目前我了解到的情況來看,確實沒有一個簡單的可以直接無副作用地刷新小程序。
場景
在小程序其它頁面做了操作,數據發生改變,回到webview頁面時需要更新webview里面的數據。由于小程序沒有提供與webview的實時通信能力,因此刷新頁面是個可考慮的做法。
方法一最常見的做法,修改一下webview的url,加點query參數什么的,頁面就會更新了。但是這會增加webview的瀏覽history,導致用戶在后退的時候,會在webview內退到前一個頁面,而不是退到小程序的前一個頁面。
方法二在小程序內調用wx.redirectTo(OBJECT)方法。這里填當前頁面的url。其實是關閉當前頁面重新打開,變相達到刷新webview的目的。但是由于重新打開了小程序頁面,因此耗時會增加一些。并且,用戶會看到前一個頁面閃一下,然后出現新頁面。
方法三首先,讓webview做條件渲染:
需要刷新時,先把webviewUrl設為空,銷毀當前webview。然后再把webviewUrl設為當前值。如下:
refreshWebview: function () { let tmpUrl = this.data.webviewUrl; this.setData({ webviewUrl: "" }); setTimeout(() => { this.setData({ webviewUrl: tmpUrl }) }, 100); }
這樣便可以在不影響導航欄歷史的情況下刷新頁面,也可以是跳轉url。
這里setData之后,頁面內容的更新應該是異步執行的,因此我們后一次修改url需要延時一小段時間,否則會出現error。
猜測setData后頁面實際更新應該是在下一次的requestAnimationFrame,因此如果頁面完全不卡頓可能16ms就可以了,保險起見,我設了100ms。
目前我了解到的情況來看,確實沒有一個簡單的API可以直接無副作用地刷新小程序webview。方法三是我自己摸索出來的辦法。但是總覺得這么個簡單的問題應該有更直接的做法才對,奇怪。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96641.html
摘要:網頁引入網頁發起支付由后臺返回,主要是需要統一下單平臺的微信支付頁面支付參數錯誤,請稍后重試支付成功支付失敗支付錯誤分享功能小程序直接分享的所在的頁面,如果需要加上頁面參數,那我們就需要處理一下了。 小程序現在越來越流行,但是公司的很多項目都是用網頁寫的,小程序語法不兼容原生網頁,使得舊有項目遷移至小程序代價很高; 小程序之前開放了webview功能,可以說是網頁應用的一大福音了,但...
摘要:網頁引入網頁發起支付由后臺返回,主要是需要統一下單平臺的微信支付頁面支付參數錯誤,請稍后重試支付成功支付失敗支付錯誤分享功能小程序直接分享的所在的頁面,如果需要加上頁面參數,那我們就需要處理一下了。 小程序現在越來越流行,但是公司的很多項目都是用網頁寫的,小程序語法不兼容原生網頁,使得舊有項目遷移至小程序代價很高; 小程序之前開放了webview功能,可以說是網頁應用的一大福音了,但...
摘要:最近開始接觸了小程序的開發,由于時間問題,文檔閱讀的并不完備,也踩了很多坑。的使用微信小程序不支持原生頁面跳轉,包括和,若要跳轉小程序應用內頁面,需要使用,詳見。參考文獻微信小程序開發者文檔 最近開始接觸了小程序的開發,由于時間問題,文檔閱讀的并不完備,也踩了很多坑。不得不說,微信的野心真是越來越大了,但是它超高的流量注定了它有這個資本。 原文地址:mini programs 目...
摘要:最近開始接觸了小程序的開發,由于時間問題,文檔閱讀的并不完備,也踩了很多坑。的使用微信小程序不支持原生頁面跳轉,包括和,若要跳轉小程序應用內頁面,需要使用,詳見。參考文獻微信小程序開發者文檔 最近開始接觸了小程序的開發,由于時間問題,文檔閱讀的并不完備,也踩了很多坑。不得不說,微信的野心真是越來越大了,但是它超高的流量注定了它有這個資本。 原文地址:mini programs 目...
閱讀 3652·2021-09-02 15:11
閱讀 4563·2021-08-16 10:47
閱讀 1560·2019-08-29 18:35
閱讀 3030·2019-08-28 17:54
閱讀 2843·2019-08-26 11:37
閱讀 1496·2019-08-23 16:51
閱讀 1799·2019-08-23 14:36
閱讀 1801·2019-08-23 14:21