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

快速開始

更新時(shí)間:

H5 容器和離線包支持 原生 AAR 接入組件化接入 兩種接入方式。通過使用 H5 容器可以實(shí)現(xiàn)在應(yīng)用內(nèi)打開一個(gè)在線網(wǎng)頁、前端調(diào)用 Native 接口、前端調(diào)用自定義 JSAPI、自定義 H5 頁面的 TitleBar、使用 UC 內(nèi)核等相關(guān)功能。使用 H5 離線包可以實(shí)現(xiàn)發(fā)布、預(yù)置、啟動(dòng)和更新離線包等相關(guān)功能。

前置條件

添加 SDK

原生 AAR 方式

參考 AAR 組件管理,通過 組件管理(AAR) 在工程中安裝 H5 容器 組件。

組件化方式

在 Portal 和 Bundle 工程中通過 組件管理 安裝 H5 容器 組件。更多信息,參考 管理組件依賴

初始化 mPaaS

如果使用 原生 AAR 接入,需要初始化 mPaaS。在 Application 中添加以下代碼:

public class MyApplication extends Application {
    
    @Override
    public void onCreate() {
        super.onCreate();
        // mPaaS 初始化
        MP.init(this);    
    }
}

詳情請參考:初始化 mPaaS

配置小程序包請求時(shí)間間隔

mPaaS 支持配置小程序包的請求時(shí)間間隔,可全局配置或單個(gè)配置。

  • 全局配置:在 Android 工程的 assets/config 路徑下,創(chuàng)建 custom_config.json 文件,并在文件內(nèi)填入以下內(nèi)容:

    {
    "value": "{\"config\":{\"al\":\"3\",\"pr\":{\"4\":\"86400\",\"common\":\"864000\"},\"ur\":\"1800\",\"fpr\":{\"common\":\"3888000\"}},\"switch\":\"yes\"}",
    "key": "h5_nbmngconfig"\
    }

    其中 \"ur\":\"1800\" 是設(shè)置全局更新間隔的值,1800 為默認(rèn)值,代表間隔時(shí)長,單位為秒,您可修改此值來設(shè)置您的全局離線包請求間隔,范圍為 0 ~ 86400 秒(即 0 ~ 24 小時(shí),0 代表無請求間隔限制)。

    重要

    其他參數(shù)請勿隨意修改。

  • 單個(gè)配置:即只對當(dāng)前小程序包配置。可在控制臺中前往 添加離線包 > 擴(kuò)展信息 中填入 {"asyncReqRate":"1800"} 來設(shè)置請求時(shí)間間隔。詳情參見 創(chuàng)建 H5 離線包 中的 擴(kuò)展信息

驗(yàn)證請求時(shí)間間隔配置是否生效:您可以打開?個(gè)接入 H5 離線包的工程,在 logcat 日志中過濾 H5BaseAppProvider 關(guān)鍵字,若能看到如下信息,則說明配置已經(jīng)生效。

lastUpdateTime: xxx updateRate: xxx

使用 SDK

mPaaS Nebula H5 容器提供統(tǒng)一的接口類 MPNebula 來實(shí)現(xiàn) H5 容器及離線包的操作。調(diào)用過程如下:

  1. 啟動(dòng) H5 離線包。

    • 啟動(dòng)一個(gè)離線包:

      /**
      * 啟動(dòng)離線包
      *
      * @param appId 離線包 ID
      */
      public static void startApp(String appId);
    • 啟動(dòng)一個(gè)離線包(帶啟動(dòng)參數(shù)):

      /**
      * 啟動(dòng)離線包
      *
      * @param appId  離線包 ID
      * @param params 啟動(dòng)參數(shù)
      */
      public static void startApp(String appId, Bundle params);
  2. 啟動(dòng)一個(gè)在線頁面。

    • 啟動(dòng)一個(gè)在線頁面:

      /**
      * 啟動(dòng)在線 URL
      *
      * @param url 在線地址
      */
      public static void startUrl(String url)
    • 啟動(dòng)一個(gè)在線頁面(帶啟動(dòng)參數(shù)):

      /**
      * 啟動(dòng)在線 URL
      *
      * @param url   在線地址
      * @param param 啟動(dòng)參數(shù)
      */
      public static void startUrl(String url, Bundle param);
  3. 設(shè)置自定義 UserAgent

    1. 首先需要實(shí)現(xiàn)一個(gè) UA 設(shè)置器,如下所示:

      public class H5UaProviderImpl implements H5UaProvider {
      @Override
      public String getUa(String defaultUaStr) {
       //不要修改 defaultUaStr,或者返回一個(gè)不包含 defaultUaStr 的結(jié)果
       return defaultUaStr + " AlipayClient/mPaaS"; 
      }
      }
    2. 然后通過調(diào)用設(shè)置 UA 接口:

      /**
      * 設(shè)置 UA
      *
      * @param uaProvider UA 設(shè)置器,需開發(fā)者實(shí)現(xiàn) getUa 方法
      */
      public static void setUa(H5UaProvider uaProvider)
    3. 進(jìn)行設(shè)置:

      MPNebula.setUa(new H5UaProviderImpl());
  4. 設(shè)置自定義容器 View。

    容器提供方法可以設(shè)置自定義的標(biāo)題欄、導(dǎo)航菜單、下拉刷新頭部以及 WebView 的承載布局,具體實(shí)現(xiàn),可參考 代碼示例 獲取代碼示例,查看 AAR 接入方式下 H5 容器和離線包的代碼示例。

    1. 首先,需要先實(shí)現(xiàn)一個(gè) View 設(shè)置器,如下所示:

      public class H5ViewProviderImpl implements H5ViewProvider {
      @Override
      public H5WebContentView createWebContentView(Context context) {
       // 此處返回自定義的 WebView 的承載布局,若返回 null 則使用默認(rèn) View
       return null;
      }
      
      @Override
      public H5TitleView createTitleView(Context context) {
       // 此處返回自定義的標(biāo)題欄,若返回 null 則使用默認(rèn) View
       return null;
      }
      
      @Override
      public H5PullHeaderView createPullHeaderView(Context context, ViewGroup viewGroup) {
       // 此處返回自定義的下拉刷新頭部,若返回 null 則使用默認(rèn) View
       return null;
      }
      
      @Override
      public H5NavMenuView createNavMenu() {
       // 此處返回自定義的導(dǎo)航菜單,若返回 null 則使用默認(rèn) View
       return null;
      }
      }
    2. 然后通過 View 設(shè)置接口:

      /**
      * 設(shè)置容器相關(guān)的自定義 view,如標(biāo)題欄、菜單欄、web layout、下拉刷新 view 等等
      * @param viewProvider 自定義 view provider
      */
      public static void setCustomViewProvider(H5ViewProvider viewProvider);
    3. 執(zhí)行設(shè)置過程:

      MPNebula.setCustomViewProvider(new H5ViewProviderImpl());
      說明

      若要設(shè)置自定義標(biāo)題欄,需要先設(shè)置 bundle name,否則可能會(huì)找不到資源。

      // 此處必須設(shè)置標(biāo)題欄資源所在的 bundle 名稱,如果不設(shè)置,會(huì)導(dǎo)致資源無法加載導(dǎo)致標(biāo)題欄無法生效
      H5Utils.setProvider(H5ReplaceResourceProvider.class.getName(), new H5ReplaceResourceProvider() {
      @Override
      public String getReplaceResourcesBundleName() {
       return BuildConfig.BUNDLE_NAME;
      }
      });
      MPNebula.setCustomViewProvider(new H5ViewProviderImpl());
  5. 將單個(gè)容器的視圖嵌入到頁面。

    根據(jù)實(shí)際情況選擇以下方法將 H5 頁面嵌入到單個(gè)容器的視圖(view)中,接口提供同步方法和異步方法。

    • 同步方法

      /**
      * 獲取 H5 容器的視圖(view)
      *
      * @param activity 頁面上下文
      * @param param    啟動(dòng)參數(shù),內(nèi)部可包含 appid 或是 URL
      * @return H5 容器的視圖(view)
      */
      public static View getH5View(Activity activity, Bundle param);
    • 異步方法

      /**
      * 異步獲取 H5 容器的視圖(view)
      *
      * @param activity            頁面上下文
      * @param param               啟動(dòng)參數(shù),內(nèi)部可包含 appid 或是 URL
      * @param h5PageReadyListener 異步回調(diào)
      */
      public static void getH5ViewAsync(Activity activity, Bundle param, H5PageReadyListener h5PageReadyListener);
      說明
      • 在使用上述同步、異步方法嵌入容器時(shí),需要提前獲取對應(yīng)離線包的信息。

      • 使用異步方法不占用主線程,不會(huì)影響性能。