授权
需授权接口列表
接口 | 描述 |
---|---|
qh.getUserInfo | 用户信息 |
qh.getLocation | 地理位置 |
此类接口调用时需注意:
- 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
- 如果用户之前已经同意授权,则不会出现弹窗,可直接调用接口;
- 如果用户之前已经拒绝,则再次调用也不会弹窗,会执行 fail 回调。请开发者兼容用户拒绝授权的场景。
qh.authorize
解释: 提前向用户发起授权请求。
方法参数:Object object
object
参数说明:
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
scope | String | 是 | - | 部分接口需要经过用户授权同意才能调用。将这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用,详见 scope 列表。 |
success | Function | 否 | - | 接口调用成功的回调函数 |
fail | Function | 否 | - | 接口调用失败的回调函数 |
complete | Function | 否 | - | 接口调用结束的回调函数(调用成功、失败都会执行) |
scope 列表:
scope | 对应接口 | 描述 |
---|---|---|
scope.userInfo | qh.getUserInfo | 用户信息 |
scope.userLocation | qh.getLocation | 地理位置 |
示例:
- 在 html 文件中
<div>
<se-button v-for="item in items" :id="item.id" @click="btnClick" type="primary" >{{item.name}}</se-button>
</div>
- 在 js 文件中
Page({
data() {
return {
items: [{
name: '授权获取用户信息',
id: 'scope.userInfo'
}, {
name: '授权获取位置信息',
id: 'scope.userLocation'
}]
}
},
methods: {
btnClick(e) {
let scope = e.currentTarget.id;
qh.authorize({
scope,
success: res => {
qh.showToast({
title: '授权成功'
});
},
fail: err => {
qh.showToast({
title: '授权失败'
});
console.log('authorize fail', err);
}
});
}
},
});
说明: 授权操作为异步操作,完成前请不要多次调用。