扩展能力规范
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 和 * 这几种类型,更详细的内容请参考值类型系统。