<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                > 熱更新方式是使用生成wgt升級包方式,無需用戶手動點擊升級,即可靜默方式將應用升級到最新版 [TOC] ## 修改版本號 > 在manifest.json -> 基本配置 -> 將“應用版本名稱”、“應用版本號”進行修改 ![](https://img.kancloud.cn/c4/b1/c4b19c0d1da3db389c2731f47c78f228_671x447.png) ## 生成wgt升級包 > 菜單 -> 發行 -> 原生App-制作移動App資源升級包 ![](https://img.kancloud.cn/9e/26/9e269e0573ae294788e2d751036d498e_644x323.png) ## 服務端版本更新檢測接口 > 只是一個例子,具體邏輯自己實現 > 接口地址:http://www.example.com/update.php ~~~ <?php $version = $_GET['version']; if ($version == '1.0.0') { echo json_encode([ 'update' => 1, 'wgtUrl'=> 'http://www.example.com/1.0.2.wgt' ], true); }else{ echo json_encode([ 'update' => 0, 'wgtUrl'=> '' ], true); } ~~~ ## 客戶端檢測升級 > 在 App.vue 的 onLaunch 中檢測升級,代碼如下: ~~~ <script> export default { onLaunch: function() { console.log('App Launch') // #ifdef APP-PLUS plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) { uni.request({ url: 'http://www.example.com/update.php', data: { version: widgetInfo.version, name: widgetInfo.name }, success: (result) => { let data = result.data; if (data.update && data.wgtUrl) { uni.downloadFile({ url: data.wgtUrl, success: (downloadResult) => { console.log(downloadResult.statusCode) if (downloadResult.statusCode === 200) { console.log('您的版本過老('+widgetInfo.version+'),執行更新版本流程') plus.runtime.install(downloadResult.tempFilePath, { force: false }, function() { console.log('install success...'); plus.runtime.restart(); }, function(e) { console.error('install fail...'); }); } }, fail:(res) => { console.log(res) } }); } } }); }); // #endif }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') } } </script> ~~~ ## 不支持的情況 > * SDK 部分有調整,比如新增了 Maps 模塊等,不可通過此方式升級,必須通過整包的方式升級。 > * 原生插件的增改,同樣不能使用此方式。 > 對于老的非自定義組件編譯模式,這種模式已經被淘汰下線。但以防萬一也需要說明下,老的非自定義組件編譯模式,如果之前工程沒有 nvue 文件,但更新中新增了 nvue 文件,不能使用此方式。因為非自定義組件編譯模式如果沒有nvue文件是不會打包weex引擎進去的,原生引擎無法動態添加。自定義組件模式默認就含著weex引擎,不管工程下有沒有nvue文件。 ## 關于熱更新是否影響應用上架 > Apple曾經禁止過jspatch,但沒有打擊其他的熱更新方案,包括cordovar、react native、DCloud。封殺jspatch其實是因為jspatch有嚴重安全漏洞,可以被黑客利用,造成三方黑客可篡改其他App的數據。 ## 熱更新注意事項 > * 上架審核期間不要彈出熱更新提示 > * 熱更新內容使用https下載,避免被三方網絡劫持 > * 不要更新違法內容、不要通過熱更新破壞應用市場的利益,比如iOS的虛擬支付要老老實實給Apple分錢 > * 如果你的應用沒有犯這些錯誤,應用市場是不會管的。 > 參考資料: > https://ask.dcloud.net.cn/article/35667 > https://ask.dcloud.net.cn/article/182 > https://www.jianshu.com/p/648dcd946aa4
                  <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>

                              哎呀哎呀视频在线观看