uniCloud分为客户端和云端两部分,有些接口名称相同,参数也相近,在此列举客户端sdk内可以使用的接口/属性,避免混淆
客户端API列表
API | 描述 |
---|---|
uniCloud.callFunction() | 客户端调用云函数 详情 |
uniCloud.database() | 客户端访问云数据库,获取云数据库对象引用 详情 |
uniCloud.uploadFile() | 客户端直接上传文件到云存储 详情 |
uniCloud.getTempFileURL() | 客户端获取云存储文件的临时路径 详情 |
uniCloud.chooseAndUploadFile() | 客户端选择文件并上传 详情 |
uniCloud.getCurrentUserInfo() | 获取当前用户信息 详情 |
uniCloud.init() | 同时使用多个服务空间时初始化额外服务空间 详情 |
HBuilderX 3.1.0+
解析客户端token获取用户信息。常用于在前端判断当前登录的用户状态和用户权限,比如根据不同的权限显示隐藏某些按钮。
注意
uni_id_token
内用法:uniCloud.getCurrentUserInfo()
该方法为同步方法。
响应参数
字段 | 类型 | 说明 |
---|---|---|
uid | Number | 当前用户uid |
role | Array | 用户角色列表。admin用户返回["admin"] |
permission | Array | 用户权限列表。注意admin角色此数组为空 |
未能获取用户信息时返回以下结果
{
uid: null,
role: [],
permission: []
}
示例
console.log(uniCloud.getCurrentUserInfo().role.indexOf('admin')>-1); // 如果是admin用户的话,打印结果为true
新增于HBuilderX 3.1.20
接口形式:uniCloud.addInterceptor(String apiName, Object interceptorMap)
平台兼容性
阿里云 | 腾讯云 |
---|---|
√ | √ |
入参说明
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
apiName | string | 是 | 要拦截的Api名称,可选值:callFunction、database、uploadFile |
interceptorMap | object | 是 | 要添加的拦截器 |
interceptorMap参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 | 平台差异说明 |
---|---|---|---|---|---|
invoke | Function | 否 | 拦截前触发 | ||
success | Function | 否 | 成功回调拦截 | ||
fail | Function | 否 | 失败回调拦截 | ||
complete | Function | 否 | 完成回调拦截 |
示例
uniCloud.addInterceptor('callFunction', {
invoke(param) {
// param为拦截Api的参数 例 {name: 'functionName', data: {'functionParam1': 1, 'functionParam2': 2}}
// 此处返回错误可终止api执行
},
success(res) {
// res为callFunction的返回值,此处可以对返回值进行修改
},
fail(err) {
// err为callFunction抛出的错误
},
complete(res){
// complete内res为上面的res或err
}
})
新增于HBuilderX 3.1.20
接口形式:uniCloud.removeInterceptor(String apiName, Object interceptorMap)
入参说明
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
apiName | string | 是 | 要拦截的Api名称,可选值:callFunction、database、uploadFile |
interceptorMap | object | 是 | 要移除的拦截器,选填,不传递此参数时移除此Api所有拦截器 |
interceptorMap参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 | 平台差异说明 |
---|---|---|---|---|---|
invoke | Function | 否 | 拦截前触发 | ||
success | Function | 否 | 成功回调拦截 | ||
fail | Function | 否 | 失败回调拦截 | ||
complete | Function | 否 | 完成回调拦截 |
注意:
// 错误用法,无法移除invoke拦截器
uniCloud.addInterceptor('callFunction', {
invoke(param) {
console.log('callFunction invoked, with param:',param)
}
})
uniCloud.removeInterceptor('callFunction', {
invoke(param) {
console.log('callFunction invoked, with param:',param)
}
})
// 正确用法
function invokeInterceptor(param) {
console.log('callFunction invoked, with param:',param)
}
uniCloud.addInterceptor('callFunction', {
invoke: invokeInterceptor
})
uniCloud.removeInterceptor('callFunction', {
invoke: invokeInterceptor
})
用法:uniCloud.config.provider
访问此属性会返回tencent
、aliyun
分别代表腾讯云和阿里云