开发

扩展能力规范

API 命名规范

1、API 命名空间需与宿主协议名保持一致

  • 通过客户端描述表挂载的 API,描述表中的 name 应为 ${hostName}.${apiName}。其中,hostName 为定义在 swan 下的宿主命名空间, 需要与客户端提供的全局方法 getEnvVariables 获取的 hostName 字段保持一致,否则将影响 API 的挂载。
  • 通过宿主扩展包 extension 扩展的 API,extension.js 中的 name 为定义在 swan 下的宿主命名空间,也应与全局方法 getEnvVariables 获取的 hostName 保持一致。

2、同步 API 命名需以 Sync 结尾

apiName 区分同异步能力,同步能力请以 Sync 结尾,如 isLoginSync

3、遵循驼峰命名法

apiName 请遵循驼峰命名法,不要带下划线 ‘_’ 等特殊符号。

客户端描述表规范

1、invoke 调起规范

在不同客户端环境下,端能力调起的 invoke 取值请严格遵循下表,否则将影响端能力的调用。

  • 1.1 scheme 协议调起方式

iOS
webview jscore
异步 同步 异步 同步
invoke invoke: 'swan.message.url',
handler: 'bridge'
'swan.prompt' 'swan.method.url' 不支持 scheme 调起
method / / '_naSwan.bridge.postMessage'


Android
webview v8
异步 同步 异步 同步
invoke 'swan.method.url' 'swan.method.url' 'swan.method.url' 'swan.method.url'
method 'Bdbox_android_jsbridge.dispatch' 'Bdbox_aiapps_jsbridge.dispatch' '_naSwan.Bdbox_android_jsbridge.dispatch' '_naSwan.Bdbox_aiapps_jsbridge.dispatch'

  • 1.2 binding 方式调起

iOS Android
webview jscore webview v8
异步 同步 异步 同步 异步 同步 异步 同步
invoke 不支持 binding 调起 'swan.method.json' 'swan.method.jsonString'
method 根据方法模块填入 根据方法模块填入

2、参数类型规范

描述表 args 的参数类型支持 boolean、string、number、function、Object、Array 和 * 这几种类型,更详细的内容请参考值类型系统