前言
最近一段時間都在做小程序。
雖然是第二次開發小程序,但是上次做小程序已經是一年前的事了,所以最終還是被坑得死去活來。
這次是從零開始開發一個小程序,其實除了一些莫名其妙的兼容性問題,大多數坑點都是在微信小程序的各個入口場景處。
所以這里整理一下微信小程序的各個入口場景,以及從這些入口場景進入小程序會面臨的問題以及解決方案。
這里只列出常用的幾種場景:
[簡單場景]啟動小程序并進入 [簡單場景]退出重進(啟動小程序后,退出小程序,再次進入小程序) [簡單場景]退出重進首頁(啟動小程序后,退出小程序,通過掃二維碼再次進入小程序) [復雜場景]啟動并進入指定頁面(從小程序的分享卡片或者微信發送的通知消息進入小程序) [復雜場景]退出重進指定頁面(啟動小程序后,退出小程序,從小程序的分享卡片或者微信發送的通知消息進入小程序)啟動小程序并進入
微信小程序的入口場景光微信提供的場景值就有幾十種,但是絕大多數都可以劃分為啟動小程序并進入。
這是最常用的一種進入小程序的方式,比如通過搜索進入或者點擊最近使用小程序的方式進入,都算是這種類型。
這一場景下,首先我們需要明白發生了什么:
下載小程序 => 啟動小程序 onLaunch事件觸發 => 加載首頁 onLoad事件觸發 => 首頁 onShow事件
然后在這個場景下,需要注意以下幾個問題:
1.這個場景下一般會涉及到登錄。
所謂登錄,不一定是要在這個階段做,但是登錄信息的判斷這個階段是一定要做的。
通常前端肯定是要將登錄的這些信息存儲在小程序的storage里,然后在onLaunch事件中判斷是否登錄,沒登錄就跳轉到登錄頁面,登錄了就跳轉到首頁。
這里的登錄判斷一定要放在onLaunch,而不要放在首頁的onLoad里面,因為小程序啟動一定會進入onLaunch,而不一定會進入首頁的onLoad。
2.而登錄頁面在設計的時候最好要加上一個url參數
傳入登錄成功后跳轉到的頁面地址,而不是登錄之后始終跳轉到首頁,后面會講為什么需要這么做。
3.onLaunch階段是否有發出請求
并在請求完成后進行了頁面跳轉,或者請求完成設置storage,并在onLoad頁面中使用?
這種情況的出現,會導致在請求時間過長時,首頁的onLoad已經執行了,此時就會出現BUG。
對于這個問題,有的人會用定時器去判斷是否完成這個操作,但是我的建議是盡量避免在onLaunch中進行這些操作。
如果一定要有,那么最好的方式就是做一個加載頁面去承載這些功能。
新聞熱點
疑難解答