基本使用方法
集成与初始化
简介
本文档为 Android 与 iOS 通用的 JSAPI 使用介绍。
Android:安卓的一部分内置 JSAPI 在 H5 容器 SDK 中,另一部分需要依赖三方库能力的扩展 JSAPI 在 TMFDemo 中。
iOS:iOS 的 JSAPI 通过 cocoapods 使用 subSpec 的方式进行管理,可以按需求进行灵活添加。
集成
- Android:
- 内置 JSAPI 集成请参见H5容器 > 接入Android > 进阶
- 扩展 JSAPI 可以直接参考TMFDemo。
- iOS:
- 使用所有 JSAPI ->
pod 'TMFJSAPIs'
- 使用部分 JSAPI ->
pod 'TMFJSAPIs/TMFJSAPIs_Location'
(定位),pod 'TMFJSAPIs/TMFJSAPIs_Shark'
(Shark)
- 使用所有 JSAPI ->
使用方式
H5 调用 Native
TMFJSBridge.invoke(apiName, {
param0 : param0, // any,参数 0
param1 : param1, // any,参数 1
// ...
paramN : paramN, // any,参数 n
}, function (res) {
console.log({
ret : res.ret, // integer,接入层错误码,有效值:0 表示成功,1 表示接入层失败,2 表示业务层失败,-1 表示取消(部分接口有取消操作)
errMsg : res.errMsg, // string,接入层错误详细信息
});
});
入参 | 类型 | 描述 |
---|---|---|
param0 - paramN | any | 传递参数 |
callback | function | 返回值回调函数 |
出参 | 类型 | 描述 |
---|---|---|
ret | integer | 接入层错误码 0: 成功 1: 接入层失败 2: 业务层失败 -1: 取消(部分接口有取消操作) |
errMsg | string | 接入层错误详情信息 |
H5 监听 Native事件
document.addEventListener(eventName, function (e) {
var res = e.tmf;
console.log({
param0 : res.param0, // any,参数 0
param1 : res.param1, // any,参数 1
// ...
paramN : res.paramN, // any,参数 n
});
}, false);
参数 | 类型 | 描述 | 必选 | 默认值 |
---|---|---|---|---|
eventName | string | 事件名 | Y | / |
e | object | 返回值 | Y | / |
H5 监听 Jsbridge 初始化完成事件
H5 代码需要监听 Jsbridge 初始化完成事件后,H5 页面中才会存在 TMFJSBridge 对象,需要在 callback 回调中使用 TMFJSBridge 调用对应的 native 方法,监听参考代码如下:
/**
* 当 window.onload 后,H5 容器会初始化,TMFJSBridge 会注入容器,然后触发 TMFJSBridge 初始化完毕(TMFJSBridgeReady)事件。
* TMFJSBridge 注入是一个异步过程,因此尽可能监听该事件后,再使用 TMFJSBridge.invoke 来调用 JS API。
*/
function tmf_ready(callback) {
if (window.TMFJSBridge) {
callback && callback();
} else {
document.addEventListener("TMFJSBridgeReady", callback, false);
}
}