0.0.0 • Published 1 year ago

@microbt/js-bridge v0.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

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的返回值为true or false
  • 该方法不会调用失败

Model 定义

明确定义各个模块的入参与出参的数据结构。TODO

  • 客户端版本
  • 远程请求
  • 打开新的窗口
  • 支付
  • 用户信息
0.0.0

1 year ago