微信小程序的同步请求授权的详细解决方案
微信小程序的同步请求授权的详细解决方案Demand analysis:
1。当小程序第一次打开时,我需要同时请求多个权限,由用户逐一授权。
{ { 'scope。用户信息的范围。userlocation ','范围。地址','范围。记录','范围。writephotosalbum})
问题分析:
1。wx.authorize接口调用,同时请求多个特权。由于异步原因,授权请求被发送出去,显然不符合要求。
2。承诺可以很好的解决问题,试一下吧,下面的代码分为两个文件。
/ / scope.js
进口6从'。 / / 6承诺帮手
获取用户授权
功能getscope(scopename){
返回新的6。承诺(功能(解决,拒绝){
查询/授权
wx.getsetting({
成功(RES){
如果(!scopename res.authsetting { }){
授权的/
wx.authorize({
经营范围:scopename,
成功(){
决心(0)
}失败(){()
决心(1)
}
})
}
}
})
})
}
module.exports = { getscope:getscope }
/ / index.js
从…..输入范围
页({
OnShow(){
让列表= {范围。用户信息
/请求记录结果
设数字= 0;
问题1:如何转变成循环
Scope.getScope(表{ 0 })。然后(功能(RES){)
数字= RES;
Scope.getScope(表{ 1 })。然后(功能(RES){)
数字= RES;
Scope.getScope(表{ 2 })。然后(功能(RES){)
数字= RES;
Scope.getScope(表{ 3 })。然后(功能(RES){)
数字= RES;
从接口集合中传输
如果(努姆){
wx.opensetting({
成功(RES){
允许访问用户信息
如果(res.authsetting {范围。用户信息))
UserService.login()
}
})
{人}
UserService.login()
}
})
})
})
})
})
分析与解决:
1问题1。代码太笨了,不能写,但试着用循环的方式调用,不知道如何处理回调问题。
2.wx.authorize接口参数,成功,官方的解释是(回调函数接口调用成功),否则,事实上,接口调用成功,得到指定的权利范围。
如果您有任何问题,请在本站留言或与社区交谈。谢谢你的阅读。我希望你能帮助你。感谢您对本站的支持。