页面上下文

获取 H5 容器栈

功能说明

用于获取当前所有打开的 H5 容器。

功能接口

TMFJSBridge.invoke('getContainerStack', {}, callback)
入参 类型 描述 必选 默认值
callback function 返回值回调函数 Y /
出参 类型 描述
containerStack string H5 容器栈,格式如下:
[
{ containerId: id_0, url: '...', }, // 容器 0
{ containerId: id_1, url: '...', }, // 容器 1
{ containerId: id_2, url: '...', }, // 容器 2
...
{
containerId: id_n, // integer,容器 ID
url: '...', // string,容器 URL
}, // 容器 N
]

代码示例

<div>
<button onclick='tmf_getContainerStack();'>点击获取 H5 容器栈</button>
<script>
function tmf_getContainerStack() {
    TMFJSBridge.invoke('getContainerStack', {
    }, function(res) {
          /* 格式如下:
          *  [
          *      { containerId: id_0, url: '...', }, // 容器 0
          *      { containerId: id_1, url: '...', }, // 容器 1
          *      { containerId: id_2, url: '...', }, // 容器 2
          *      // ...
          *      {                                   // 容器 N
          *        containerId: id_n,                // integer,容器 ID
          *        url: '...',                       // string,容器 URL
          *      }, // 容器 N
          *  ]
          */
              containerStack : res.containerStack,    // array,H5 容器栈
    });
}
</script>
</div>

在新的 H5 容器打开页面

功能说明

用于在新的 H5 容器打开页面。

此 JSAPI 为 UI 相关。

Android:具体实现在 TMFDemo 中。

功能接口

TMFJSBridge.invoke('openContainer', {url,params:{}}, callback)
入参 类型 描述 必选 默认值
callback function 返回值回调函数 Y /
url string 要打开的页面 URL 地址 Y /
params dictionary 可选参数 N {}
params.defaultTitle String 默认标题 N /
params.showsContainerTitle bool 是否展示页面标题 N false

代码示例

<div>
<button onclick='tmf_openContainer(url);'>点击在新的 H5 容器打开页面</button>
<script>
function tmf_openContainer(url) {
    TMFJSBridge.invoke('openContainer', {
        url     : url ? url : window.location.href, // string,必选,URL 地址
        params  : {                                 // dictionary,可选,参数
            defaultTitle    : 'Default Title',      // string,可选,默认标题
            showsContainerTitle  : true,            // bool,可选,是否展示页面标题
        },
    }, function (res) {
                // callback
    });
}
</script>
</div>

注意事项

  • 在新的 H5 容器打开页面,是新创建 H5 容器并打开新页面,如果想完成替换当前页面的效果,请先调用closeContainer 关闭当前 H5 容器。建议不要不断地创建新的 H5 容器,同时需要及时清除历史容器,保证性能。

  • 在新的 H5 容器打开页面,是网络异步加载,因此容器标题可能不是立刻加载完成。如果有交互需要,可以设置 defaultTitle 默认标题。

关闭当前 H5 容器

功能说明

用于关闭当前正在展示 H5 容器的页面。

功能接口

TMFJSBridge.invoke('closeContainer', {}, callback)
入参 类型 描述 必选 默认值
callback function 返回值回调函数 Y /

代码示例

<div>
<button onclick='tmf_closeContainer();'>点击关闭当前 H5 容器</button>
<script>
function tmf_closeContainer() {
    TMFJSBridge.invoke('closeContainer', {
    }, function (res) {
                // callback
    });
}
</script>
</div>

注意事项

关闭当前 H5 容器,仅关闭当前显示的那一个容器,如果需要关闭多个 H5 容器,请使用 closeContainers 接口。

关闭多个 H5 容器

功能说明

用于关闭多个存在的 H5 容器。

功能接口

TMFJSBridge.invoke('closeContainers', {containerIds}, callback)
入参 类型 描述 必选 默认值
callback function 返回值回调函数 Y /
containerIds array 关闭容器的 ID 数组集合 Y []

代码示例

<div>
<button onclick='tmf_closeContainers();'>点击关闭多个 H5 容器</button>
<script>
function tmf_closeContainers() {
    TMFJSBridge.invoke('closeContainers', {
        containerIds : [ 1, 2 ],    // array,必选,需要关闭的 H5 容器 ID 的集合
    }, function (res) {
                // callback
    });
}
</script>
</div>

注意事项

关闭多个 H5 容器,也可以完成关闭单个容器的功能。但如果仅关闭当前单个容器,推荐使用 closeContainer 接口。

应用安装判断

功能说明

用于判断其他应用是否安装。

功能接口

TMFJSBridge.invoke('isAppInstalled', {url_ios,packageName_android}, callback)
入参 类型 描述 必选 默认值
callback function 返回值回调函数 Y /
url_ios string iOS 应用的 URL 地址 Y (iOS) /
packageName_android String Android 应用的包名 Y (Android) /
出参 类型 描述
url string 实际判断的 URL 地址
installed bool 是否安装了所判断的应用

代码示例

<div>
<button onclick='tmf_setPageInfo();'>点击判断其他应用是否安装</button>
<script>
function tmf_isAppInstalled() {
    TMFJSBridge.invoke('isAppInstalled', {
        url_ios             : 'mqqsecure://',           // string,必选(iOS)
        packageName_android : 'com.tencent.mqqsecure'   // string,必选(Android)
    }, function (res) {
                url         : res.url,          // string,实际判断的 URL 地址
                installed   : res.installed,    // bool,是否安装了 app
    });
}
</script>
</div>

注意事项

  • 判断是否安装了三方的应用,需要针对平台传入必需的参数。iOS 需要 url_ios , Android 需要 packageName_android。
  • 如果调试过程中发现无法获取到正确信息,可以根据回调中的 URL 参数来判断请求是否合理恰当。

启动其他应用

功能说明

用于启动其他三方应用。

功能接口

TMFJSBridge.invoke('openApp', {url_ios,url_android,packageName_android}, callback)
入参 类型 描述 必选 默认值
callback function 返回值回调函数 Y /
url_ios string iOS 应用的 URL 地址 Y (iOS) /
url_android string Android 应用的 URL 地址 Y (Android) /
packageName_android String Android 应用的包名 Y (Android) /
出参 类型 描述
url string 实际判断的 URL 地址
packageName string 实际打开的包名
error integer 错误码

错误码

错误码 描述
-1 业务执行失败(Android)

代码示例

<div>
<button onclick='tmf_openApp();'>点击启动其他应用</button>
<script>
function tmf_openApp() {
    TMFJSBridge.invoke('openApp', {
        url_ios             : 'mqqsecure://',           // string,必选(iOS)
        url_android         : 'mqqsecure://',           // string,必选(Android)
        packageName_android : 'com.tencent.mqqsecure'   // string,必选(Android)
    }, function (res) {
          url         : res.url,          // string,实际打开的 URL 地址
             packageName : res.packageName,  // string,实际打开的包名
        error       : res.error,        // integer,错误码
    });
}
</script>
</div>

注意事项

  • 打开其他应用,需要针对平台传入必需的参数。iOS 需要 url_ios,Android 需要 url_android。
  • 如果调试过程中发现无法打开其他应用,可以根据回调中的 url / packageName 参数来判断请求是否合理恰当,也可以核对 error 对应的错误码来获取必要信息。
Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""