最近,公司小程序項目功能更新,部分功能複測,讓某些兼容性問題再次暴露在我的面前,特此發出來給暫未遇到這個問題的開發者,提供一些思路。
onShow表現
這個事件鈎子,在頁面重新顯示的時候觸發,無論是否重新加載,對於一些數據更新和獲取,提供了穩定的處理方案。但是,假如當前頁面有選擇圖片上傳的功能或者文件上傳,選擇文件後,頁面會進入onShow鈎子,且這種情況安卓是必然觸發,IOS系統,身邊設備有限,目前看是不會觸發。
會有哪些問題?
比如當前頁面是一個用户信息表單,你默默地填完所有資料,接着上傳圖片後,發現剛剛上傳的圖片被重置為之前的圖了,同時其它字段可能也恢復了。
捨棄onShow OR 如和解決
首先,進入頁面的場景一般分兩種,第一種正常跳轉;第二種返回到頁面,這種情況要看業務是需要刷新數據還是保持不變,保持頁面不變的情況下就應該捨棄使用 onShow,轉而使用onLoad等一次性方法鈎子;
另外,非要使用onShow,則可以用好存儲機制去記錄歷史操作,比如在onHide、onUnload中,合理的做好標記,還要區別正常的頁面卸載期間,一移出這個標記,當頁面進入onShow階段,根據標記去判斷是否執行初始化的代碼,是否是頁面正常返回進入的,還可以考慮加點標記到頁面地址上。
總結
我一直希望騰訊官方能夠解決這個“問題”,然而,不如信我是秦始皇,只要Demo沒問題,我的框架就沒問題。