配置 H5 容器

H5 容器内有许多开关配置,通过修改开关配置,能够改变容器的特定行为,比如可以通过验签配置来开启或关闭离线包签名校验。

修改开关配置有以下三种方式:

  • 内置 custom_config.json 至 portal 工程或应用主工程 assets 目录下的 config 文件夹,该方法仅适用于 10.1.60 及以上版本。custom_config.json 的文件格式如下:

    [
    {
      "value": "NO",
      "key": "h5_shouldverifyapp"
    },
    {
      "value": "0",
      "key": "TSBS"
    }
    ]
  • 使用 H5ExtConfigProvider 在代码中配置开关,该方法仅适用于 10.1.60 以下版本。H5ExtConfigProvider 使用说明如下:

    public class H5ExtConfigProviderImpl implements H5ExtConfigProvider {
      @Override
      public String getConfig(String key) {
          if ("h5_shouldverifyapp".equalsIgnoreCase(key)) {
              return "YES";
          } else if ("TSBS".equalsIgnoreCase(key)) {
              return "0";
          }
          return null;
      }
    }
    // 建议在启动时调用,全局只生效一个 H5ExtConfigProvider 的实例,以最后设置的实例为准
    H5Utils.setProvider(H5ExtConfigProvider.class.getName(), new H5ExtConfigProviderImpl());
  • 通过 MDS 平台下发开关配置,参见 开关配置管理

容器开关列表

您可通过下表中的开关,来自定义是否使用对应功能。

开关名称

用途

说明

默认值

h5_shouldverifyapp

开启或关闭验签。建议线上开启,当手机被认为是 root 手机时,会强制开启验签,此时开关配置不生效。

YES 表示开启,NO 表示关闭。

YES

TSBS

是否使用沉浸式标题栏,仅适用于 Android。

“1”表示使用,“0”表示不使用。

重要

此处的“1”和“0”为字符串形式。

1

h5_remote_debug_host

真机调试远程服务器地址。

  • 如果配置,表示开启了远程真机调试。调试用服务器地址需要配置给 h5_remote_debug_host

  • 如果不配置,即在代码中不体现,表示不使用远程真机进行调试,也无默认值。

-

androidFallbackNetwork

是否采用 mPaaS 网络库方式加载 fallback 资源。

YES 表示使用 mpaas 网络库加载 fallback 资源,NO 表示使用系统网络库加载 fallback 资源。

YES

mp_h5_push_window_use_activity

调用 pushWindow 时是否强制启动新的 Activity。

YES 表示启用, 其他值表示不启用。

NO

mp_ta_showOptionMenu

是否显示小程序右上角选项菜单。

说明

此配置仅在发布小程序时选择是否显示右上角菜单时有效。

YES 表示显示,其他值表示不显示。

NO

mp_ta_showShareMenuItem

是否显示小程序右上角选项菜单中的分享选项。

YES 表示显示,其他值表示不显示。

NO

mp_ta_use_orginal_mini_nagivationbar

小程序是否使用内置导航栏。

YES 表示使用,其他值表示不使用。

YES

h5_CORSWhiteList

域名白名单,该域名下的离线资源可被跨域访问。

说明

对于在线请求的资源,仍需资源服务端开启正确的跨域设置。

内容格式为 JSON 数组,特殊字符要求转义,示例:{ "value": "[\"oss-cn-hangzhou.aliyuncs.com\"]", "key": "h5_CORSWhiteList" }

mp_h5_allow_mix_content

允许 Mixed Content 模式,开启此模式有安全风险,请慎重考虑先。

说明

此开关仅在 10.1.60 版本中支持。

YES 表示允许, NO 表示不允许。

NO