日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在客戶端預(yù)置 iOS 小程序

傳統(tǒng)的小程序技術(shù)容易受到網(wǎng)絡(luò)環(huán)境影響,當網(wǎng)絡(luò)質(zhì)量不佳時可能拉取不到小程序包。通過預(yù)置小程序即可規(guī)避該問題。本文介紹了預(yù)置小程序的原理和預(yù)置小程序的實現(xiàn)過程。

什么是預(yù)置小程序

預(yù)置小程序是指將小程序的渲染、邏輯、配置等靜態(tài)資源打包在一個壓縮包內(nèi),客戶端預(yù)先下載小程序包到本地,并直接從本地加載資源的過程。預(yù)置小程序可以最大程度地擺脫網(wǎng)絡(luò)環(huán)境對 mPaaS 小程序頁面的影響。使用預(yù)置包可帶來以下優(yōu)勢:

  • 提升用戶體驗 通過預(yù)置包的方式把頁面內(nèi)靜態(tài)資源嵌入到應(yīng)用中并隨應(yīng)用一起發(fā)布,可使用戶第一次打開應(yīng)用時無需依賴網(wǎng)絡(luò)環(huán)境去下載資源,可直接開始使用。

  • 實現(xiàn)動態(tài)更新 在推出新版本或緊急發(fā)布時,可以在小程序 IDE 中進行迭代開發(fā),通過 mPaaS 控制臺發(fā)布,客戶端中集成的小程序 SDK 會自動將小程序更新到最新的版本。這種發(fā)布無需通過應(yīng)用商店審核,可以讓用戶及早接收到更新。

前提條件

您已接入小程序組件。更多關(guān)于小程序組件的接入信息,請參見 快速開始使用小程序

操作步驟

  1. 預(yù)置小程序包。

    1. 在 mPaaS 控制臺發(fā)布小程序包并下載 AMR 文件和配置文件。

    2. 新建一個獨立的 bundle,如 DemoCustomPresetApps.bundle,將從發(fā)布平臺下載的 AMR 離線包和 h5_json.json 文件添加到此 bundle 中。

      說明

      目前發(fā)布平臺僅支持下載單個離線包的 h5_json.json 配置文件。當預(yù)置多個小程序包時,需要將不同 h5_json.json 中的 data 數(shù)據(jù)手動合并到一個配置文件中。

    3. 初始化小程序時,在 initNebulaWithCustomPresetApplistPath 接口中設(shè)置預(yù)置小程序離線包路徑為上一步中創(chuàng)建的 bundle。

      - (void)application:(UIApplication *)application beforeDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
      // 初始化 rpc
      [MPRpcInterface initRpc];
      // 初始化容器
      //    [MPNebulaAdapterInterface initNebula];
      // 自定義jsapi路徑和預(yù)置小程序包信息
      NSString *presetApplistPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"DemoCustomPresetApps.bundle/h5_json.json"] ofType:nil];
      NSString *appPackagePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"DemoCustomPresetApps.bundle"] ofType:nil];
      NSString *pluginsJsapisPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"DemoCustomPlugins.bundle/Poseidon-UserDefine-Extra-Config.plist"] ofType:nil];
      [MPNebulaAdapterInterface initNebulaWithCustomPresetApplistPath:presetApplistPath customPresetAppPackagePath:appPackagePath customPluginsJsapisPath:pluginsJsapisPath];
      }
  2. 啟動小程序。與非預(yù)置小程序類似,進入對應(yīng)的頁面時,調(diào)用 Nebula 容器提供的接口方法加載小程序。

    [MPNebulaAdapterInterface startTinyAppWithId:@"2020121720201217" params:nil];
  3. 更新小程序。默認情況下,每次打開應(yīng)用,小程序 SDK 都會嘗試檢查是否有可更新的版本。出于減少服務(wù)端壓力的考慮,該檢查有時間間隔限制,默認為 30 分鐘。如果想立即檢查最新可用版本,可調(diào)用下方的代碼來請求更新。一般情況下,可以在應(yīng)用啟動或者用戶登錄后調(diào)用。

    -(void)application:(UIApplication *)application afterDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
     //全量更新本地小程序包信息
     [[MPNebulaAdapterInterface shareInstance] requestAllNebulaApps:^(NSDictionary *data, NSError *error) {
         NSLog(@"[mpaas] nebula rpc data :%@", data);
     }];
    }
  4. 校驗安全簽名。小程序具有簽名校驗機制,防止惡意程序篡改下載到設(shè)備的小程序包。通過調(diào)用小程序接口設(shè)置驗簽參數(shù)即可開啟此機制。

    說明

    • 請在第一次打開小程序包前調(diào)用 MPNebulaAdapterInterface 接口,否則將會導(dǎo)致公鑰初始化失敗。關(guān)于公鑰與私鑰,請參見 配置小程序包 > 密鑰管理

    • 開啟驗簽。

      [MPNebulaAdapterInterface shareInstance].nebulaNeedVerify = YES;
  5. 刪除本地小程序。Nebula 提供了刪除本地應(yīng)用信息的接口。當本地應(yīng)用信息被刪除后,再次打開應(yīng)用時會重新請求服務(wù)端下載、更新本地小程序的信息。

    /**
    *  @brief 刪除本地應(yīng)用信息(包括包信息、amr以及安裝目錄)
    *
    *  @date 2019-02-28
    *
    *  @return
    */
    -(void)clearAllAppInfo:(NSString *)appId;
    //使用方法
    [[NBServiceGet() appCenter] clearAllAppInfo:@"2020199503242811"];