微信小程序取地址的授权问题uni.chooseAddress() 第一次点击取消 后面一直触发fail状态


1. 在使用uni.chooseAddress的时候,需要手机对小程序进行位置授权,第一次点击的事件会触发下面这个对话框:

 

 如果点击取消之后,后续再点击触发uni.chooseAddress都会自动进入fail方法,进不到success。

解决:

在fail方法里面使用uni.showModel,引导用户手动给应用授权,uni.openSetting需要事件驱动,保证同步性。

 1 fail(res) {
 2                             console.log('fail:',res)
 3                             uni.showModal({
 4                                 title:'温馨提示',
 5                                 content:'您需要授权后,才能使用微信地址作为收货地址,是否重新授权',
 6                                 success(res) {
 7                                     if(res.confirm){
 8                                         uni.openSetting({
 9                                             success(res) {
10                                                 if(res.authSetting['scope.address'] === true){
11                                                     uni.chooseAddress({
12                                                         success(res) {
13                                                             console.log('success:',res)
14                                                         },
15                                                         fail(err) {
16                                                             console.log('fail:',err)
17                                                         }
18                                                     })
19                                                 }
20                                             },
21                                             fail(err) {
22                                                 console.log('设置fail:',err)
23                                             }
24                                         })
25                                         console.log('用户点击确认')
26                                     } else if(res.cancel) {
27                                         console.log('用户点击取消')
28                                     }
29                                 }
30                             })
31                         }

2. 授权成功后,进入微信的地址列表,没有选择任何地址就返回,还是会触发fail回调,显示我们fail方法里面的uni.showModel的内容。

原因:

在微信地址列表点击取消,会同时执行cancel和fail,cancel 回调是早期的设计,所有取消操作都归入 fail 回调,errMsg 为 "fail cancel"。

解决:

将得到的err信息判断一下就好了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM