<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 小程序運行機制 ### 前臺/后臺狀態 小程序啟動后,界面被展示給用戶,此時小程序處于前臺狀態。 當用戶點擊右上角膠囊按鈕關閉小程序,或者按了設備 Home 鍵離開微信時,小程序并沒有完全終止運行,而是進入了后臺狀態,小程序還可以運行一小段時間。 當用戶再次進入微信或再次打開小程序,小程序又會從后臺進入前臺。但如果用戶很久沒有再進入小程序,或者系統資源緊張,小程序可能被銷毀,即完全終止運行。 ### 小程序啟動 這樣,小程序啟動可以分為兩種情況,一種是冷啟動,一種是熱啟動。 * 冷啟動:如果用戶首次打開,或小程序銷毀后被用戶再次打開,此時小程序需要重新加載啟動,即冷啟動。 * 熱啟動:如果用戶已經打開過某小程序,然后在一定時間內再次打開該小程序,此時小程序并未被銷毀,只是從后臺狀態進入前臺狀態,這個過程就是熱啟動。 ### 小程序銷毀時機 通常,只有當小程序進入后臺一定時間,或者系統資源占用過高,才會被銷毀。具體而言包括以下幾種情形: * 當小程序進入后臺,可以維持一小段時間的運行狀態,如果這段時間內都未進入前臺,小程序會被銷毀。 * 當小程序占用系統資源過高,可能會被系統銷毀或被微信客戶端主動回收。在 iOS 上,當微信客戶端在一定時間間隔內連續收到系統內存告警時,會根據一定的策略,主動銷毀小程序,并提示用戶 「運行內存不足,請重新打開該小程序」。具體策略會持續進行調整優化。建議小程序在必要時使用?[wx.onMemoryWarning](https://www.w3cschool.cn/weixinapp/weixinapp-17k838h9.html)?監聽內存告警事件,進行必要的內存清理。 > 基礎庫 1.1.0 及以上,1.4.0 以下版本: 當用戶從掃一掃、轉發等入口(場景值為1007, 1008, 1011, 1025)進入小程序,且沒有置頂小程序的情況下退出,小程序會被銷毀。 ### 啟動場景分類 用戶打開小程序時,場景可分為以下 A、B 兩類: A. 保留上次的瀏覽狀態。[場景值](https://www.w3cschool.cn/weixinapp/weixinapp-zjwp38ri.html)有以下幾項: | 場景值ID | 說明 | | --- | --- | | 1001 | 發現欄小程序主入口,「最近使用」列表(基礎庫2.2.4版本起包含「我的小程序」列表) | | 1003 | 星標小程序列表 | | 1023 | 系統桌面小圖標打開小程序 | | 1038 | 從其他小程序返回小程序 | | 1056 | 聊天頂部音樂播放器右上角菜單,打開小程序 | | 1080 | 客服會話菜單小程序入口,打開小程序 | | 1083 | 公眾號會話菜單小程序入口 ,打開小程序(只有騰訊客服小程序有) | | 1089 | 聊天主界面下拉,打開小程序/微信聊天主界面下拉,「最近使用」欄(基礎庫2.2.4版本起包含「我的小程序」欄) | | 1090 | 長按小程序右上角菜單,打開小程序 | | 1103 | 發現-小程序主入口我的小程序,打開小程序 | | 1104 | 聊天主界面下拉,從我的小程序,打開小程序 | | 1113 | 安卓手機負一屏,打開小程序 | | 1114 | 安卓手機側邊欄,打開小程序 | | 1117 | 后臺運行小程序的管理頁中,打開小程序 | * 若進入的場景中帶有 path,則每次打開小程序時都進入對應的 path 頁面 * 若進入的場景中不帶 path:若小程序是熱啟動,則保留原來狀態若小程序是冷啟動,則遵循下一節的重啟策略,可能是首頁或上次退出的頁面 B. relaunch 到指定頁或首頁 包括除 A 類外的其他場景 * 若進入的場景中帶有 path,則每次點擊時都進入對應的 path 頁面 * 若進入的場景中不帶 path,則每次進入都打開首頁 ### A 類場景的重新啟動策略 > 基礎庫 2.8.0 開始支持,低版本需做[兼容處理](https://www.w3cschool.cn/weixinapp/compatibility.html?RECACHE=1)。 小程序被銷毀后,下次冷啟動如果屬于 B 類場景,將會進入特定的頁面。 下次冷啟動如果屬于 A 類場景,默認情況下將會進入小程序的首頁。在頁面對應的 json 文件中(也可以全局配置在 app.json 的 window 段中),指定?restartStrategy?配置項可以改變這個默認的行為,使得從某個頁面退出后,下次 A 類場景的冷啟動可以回到這個頁面。 代碼示例: ~~~ { "restartStrategy": "homePage" } ~~~ restartStrategy?可選值: | 可選值 | 含義 | | --- | --- | | homePage | (默認值)如果從這個頁面退出小程序,下次將從首頁冷啟動 | | homePageAndLatestPage | 如果從這個頁面退出小程序,下次冷啟動后立刻加載這個頁面,頁面的參數保持不變(不可用于 tab 頁) | 注意:即使不配置為?homePage?,小程序如果退出過久(當前默認一天時間,可以使用退出狀態來調整),下次冷啟動時也將不再遵循?restartStrategy?的配置,而是直接從首頁冷啟動。 無論如何,頁面中的狀態并不會被保留,如輸入框中的文本內容、 checkbox 的勾選狀態等都不會還原。如果需要還原或部分還原,需要利用退出狀態。 ### 退出狀態 每當小程序可能被銷毀之前,頁面回調函數?onSaveExitState?會被調用。如果想保留頁面中的狀態,可以在這個回調函數中“保存”一些數據,下次啟動時可以通過?exitState?獲得這些已保存數據。 代碼示例: ~~~ { "restartStrategy": "homePageAndLatestPage" } ~~~ ~~~ Page({ onLoad: function() { var prevExitState = this.exitState // 嘗試獲得上一次退出前 onSaveExitState 保存的數據 if (prevExitState !== undefined) { // 如果是根據 restartStrategy 配置進行的冷啟動,就可以獲取到 prevExitState.myDataField === 'myData' } }, onSaveExitState: function() { var exitState = { myDataField: 'myData' } // 需要保存的數據 return { data: exitState, expireTimeStamp: Date.now() + 24 * 60 * 60 * 1000 // 超時時刻 } } }) ~~~ onSaveExitState?返回值可以包含兩項: | 字段名 | 類型 | 含義 | | --- | --- | --- | | data | Any | 需要保存的數據(只能是 JSON 兼容的數據) | | expireTimeStamp | Number | 超時時刻,在這個時刻后,保存的數據保證一定被丟棄,默認為 (當前時刻 + 1 天) | 注意事項: * 如果超過?expireTimeStamp?,保存的數據將被丟棄,且冷啟動時不遵循?restartStrategy?的配置,而是直接從首頁冷啟動。 * expireTimeStamp?有可能被自動提前,如微信客戶端需要清理數據的時候。 * 在小程序存活期間,?onSaveExitState?可能會被多次調用,此時以最后一次的調用結果作為最終結果。 * 在某些特殊情況下(如微信客戶端直接被系統殺死),這個方法將不會被調用,下次冷啟動也不遵循?restartStrategy?的配置,而是直接從首頁冷啟動。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看