<https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html>python
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/setting/wx.getSetting.html小程序
1 由于部分功能须要用赞成后才能使用。 2 wx.getSetting来判断该用户有没有对接口受权,我判断哪一个接口,就必须给wx.getSetting传对应的scope值 - 一个scope值对应这个一个或多个接口 3 若是咱们从wx.getSetting中发现scope值是false,标识没有受权,咱们能够经过wx.authorize发起受权,对那个接口受权,就给wx.authorize传对应scope值就能够了。若是用用户赞成受权,就能够直接使用对应的接口了。 4 可是scope.userInfo没有办法使用wx.authorize自动弹起弹框。必需要用户手动点击按钮唤起受权弹框。 代码格式: <button open-type="getUserInfo" bindgetuserinfo="user1">用户信息</button> 咱们能够再响应函数的参数中获取用户信息。e.detail,这个和直接调用wx.getUserInfo获取的内容同样。
开发者可使用 wx.getSetting 获取用户当前的受权状态。api
开发者可使用 wx.authorize 在调用需受权 API 以前,提早向用户发起受权请求。微信
scope | 对应接口 | 描述 |
---|---|---|
scope.userInfo | wx.getUserInfo | 用户信息 |
scope.userLocation | wx.getLocation, wx.chooseLocation | 地理位置 |
scope.userLocationBackground | wx.startLocationUpdateBackground | 后台定位 |
scope.address | wx.chooseAddress | 通信地址 |
scope.invoiceTitle | wx.chooseInvoiceTitle | 发票抬头 |
scope.invoice | wx.chooseInvoice | 获取发票 |
scope.werun | wx.getWeRunData | 微信运动步数 |
scope.record | wx.startRecord | 录音功能 |
scope.writePhotosAlbum | wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum | 保存到相册 |
scope.camera | camera 组件 | 摄像头 |
一旦用户明确赞成或拒绝过受权,其受权关系会记录在后台,直到用户主动删除小程序。app
wx.authorize({scope: "scope.userInfo"}) 用户信息 的受权必须button用户手动触发弹窗,受权 其余录音等受权,能够直接写在生命周期中,自动弹窗,用户点击受权
wx.authorize({scope: "scope.userInfo"})
,不会弹出受权窗口,请使用 ``ide
open-type="getUserInfo"函数
<button bindgetuserinfo="user1" open-type="getUserInfo">我的信息1</button>
须要受权 scope.userLocation
、scope.userLocationBackground
时必须配置地理位置用途说明。code
与其它类型受权不一样的是,scope.userLocationBackground 不会弹窗提醒用户。须要用户在设置页中,主动将“位置信息”选项设置为“使用小程序期间和离开小程序后”。开发者能够经过调用wx.openSetting,打开设置页。component
# wxml文件: <button bindtap="lu">录音</button> <button bindtap="user" open-type="getUserInfo">我的信息</button> <button bindgetuserinfo="user1" open-type="getUserInfo">我的信息1</button> # js文件: lu:function(){ wx.getSetting({ success(res){ if (!res.authSetting['scope.record']) { wx.authorize({ scope: 'scope.record', // 受权的功能 success() { // 用户已经赞成小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问 wx.startRecord() // 使用接口 }, fail() { // 用户不一样意进入fail回调 console.log("你没有受权") } }) } else { wx.startRecord() //使用接口 } } }) }, user: function () { wx.getSetting({ success(res) { if (!res.authSetting['scope.userInfo']) { wx.authorize({ scope: 'scope.userinfo', // 受权的功能 success() { console.log('进来了') wx.startRecord() // 使用接口 } }) } else { console.log('已经受权了') wx.startRecord() //使用接口 } } }) }, user1:function(e){ console.log('e',e.detail) wx.getSetting({ success(res){ if (res.authSetting['scope.userInfo']){ wx.getUserInfo({ success:(res) => { console.log('res',res) } }) } } }) },