微信小程序取地址的授權問題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