0.0.0 • Published 3 years ago
@microbt/js-bridge v0.0.0
JSBrige 使用说明书
将构建产物 dist/umd/js-bridge.min.js 内置到客户端内,由 Webview 启动时加载并运行 JSBridge
基础约定
// 调用示例
SuperACME.call('module', parameter, fulfilled, rejected);- 基础约定必须保持跨平台一致
SuperACME为客户端注入 Webview 的全局对象,访问SuperACME.version可获得当前 bridge 版本- 客户端在注入全局对象成功后,须通知运行时。Bridge 相关的所有调用发生在该通知之后。(通知方案待讨论 TODO)
module为客户端实现的具体方法名称parameter为运行时传入的参数对象。参数的具体规范,应与具体module保持一一对应- 所有的 bridge 调用均为异步调用,
fulfilled为成功调用的回调函数,rejected为失败调用的回调函数,没有其他回调情况 fulfilled的定义:(result) => void,其中result为模块调用返回的数据rejected的定义:(error: {code: number; message: string; cause?: unknown}) => void,其中error为模块调用返回的错误对象。error.code为错误码,error.message为错误描述,error.detail为错误详情(可选)
注入脚本涉及到 IO 异步操作,客户端注入成功后,WebView 运行时才能访问
SuperACME全局对象。
错误码约定
- 0: 调用成功
- 1000:本地系统异常(1001-1999)约定具体的本地系统错误码(尽可能的保持跨平台的一致性)TODO
- 2000:本地业务异常(2001-2999)约定具体的业务错误码(保持跨平台的一致性)TODO
- 3000:远程调用异常(3001-3999)约定具体的远程调用错误码(保持跨平台的一致性)TODO
- 9999:未知的错误
页面的生命周期
SuperACME.call('onShow', {}, fulfilled);- 页面生命周期至少包含:
onShow(页面转换到前台时的回调)、onHide(页面转换到后台时的回调) - 可选包含:
onCreate(页面创建时的回调)、onDestroy(页面销毁时的回调) fulfilled的返回值待讨论 TODO- 该调用没有失败
判断模块/接口是否存在
SuperACME.call('canIUse', 'module', fulfilled);module为模块名fulfilled的返回值为trueorfalse- 该方法不会调用失败
Model 定义
明确定义各个模块的入参与出参的数据结构。TODO
- 客户端版本
- 远程请求
- 打开新的窗口
- 支付
- 用户信息
0.0.0
3 years ago