# 通用语法
框架提供各种接口来获取应用的基本信息或者调用系统能力,每个接口包含若干 api 来执行具体的任务。接口使用前需要进行接口声明、模块导入,然后才能调用该接口下定义的若干 api。
# 接口声明
在 manifest.json 文件的 features 字段下进行声明,例如:
[{ "name": "system.network" }]
# 导入模块
使用接口前,需要在代码里导入接口模块,例如:
import network from '@system.network'
// 或
const network = require('@system.network')
# 接口 api 调用
接口提供的 api 的调用方式大概有以下几种:
- 同步 api
- 异步 api
- 订阅类 api
# 同步 api 调用
如果 api 没有返回值,一般会定义成同步 api,直接调用即可,例如:
audio.play()
# 异步 api 调用
如果 api 有返回值,一般会定义成异步 api 的形式,这类 api 除了普通参数,还有“success \ fail \ complete“这三个通用参数——分别是 api 执行“成功 \ 失败 \ 完成“后的回调方法,调用时可以传入这三个参数来获取 api 执行成功的返回值或进行执行失败 \ 完成后的处理,这三个通用参数的说明如下:
名称 | 方法参数 | 参数类型 | 参数值 | 说明 |
---|---|---|---|---|
success | data | any | api 执行的返回值,详见接口使用文档 | api 执行成功后触发 |
fail | data | any | api 执行错误信息内容,一般是字符串,也可能是其他类型,详见接口使用文档 | api 执行失败后触发 |
code | number | api 执行错误码,详见通用错误码 | ||
complete | - | - | - | api 执行完成后触发 |
代码示例:
storage.get({
key: 'A1',
success: function(data) {
console.log('handling success')
},
fail: function(data, code) {
console.log(`handling fail, code = ${code}`)
}
})
# 订阅 / 取消订阅 api
订阅类 api 不会立即返回结果,这类 api 需要开发者传入回调函数作为参数,该回调函数会在 api 完成时或者事件变化时被触发,可以执行多次。该通用回调函数参数说明如下:
名称 | 方法参数 | 参数类型 | 参数值 | 说明 |
---|---|---|---|---|
success | data | any | api 执行的返回值,详见接口使用文档 | api 调用成功或事件变更时触发,可能会触发多次 |
fail | data | any | 错误信息内容,一般是字符串,也可能是其他类型,详见接口使用文档 | api 执行失败时触发。一旦触发该回调函数,success不会再次被调用,接口调用结束 |
code | number | api 执行错误码,详见通用错误码 |
代码示例:
geolocation.subscribe({
success: function(data) {
console.log(
`handling success: longitude = ${data.longitude}, latitude = ${
data.latitude
}`
)
},
fail: function(data, code) {
console.log(`handling fail, code = ${code}`)
}
})
# 通用错误码
所有接口的 api 在执行出现错误时,会返回统一定义的通用错误码或者 api 自己定义的特殊错误码。这里对通用错误码进行说明如下:
code | 定义 |
---|---|
200 | 系统通用错误,所有系统未知异常发生时抛出。比如框架申请内存空间失败等 |
202 | 参数错误,调用时未按照 api 定义进行正确的传参 |
203 | 该功能不支持 |
204 | 请求超时 |
300 | I/O 错误 |