關於openSetting通過tap的調用


問題模塊 框架類型 問題類型 API/組件名稱 終端類型 微信版本 基礎庫版本
API和組件 小程序 Bug openSetting 工具 6.7.2 2.3.0

當前 Bug 的表現(可附上截圖)

官方說明了openSetting的調用是支持通過tap去觸發showModal,再在showModal中調起的,但實際操作后,與說明的有出入。

由於實際開發中,為了方便授權,會將getSetting,showModal,openSetting封裝於一個函數,方便檢測權限並授權,但也應該是滿足了以上說的在tap中觸發的要求,但測試后,卻還是顯示如下提示

VM255:1 openSetting:fail can only be invoked by user TAP gesture.

 

預期表現

支持通過tap去觸發showModal,再在showModal中調起openSetting

 

復現路徑

導入代碼片段(需填寫appid,因為需要用到授權),如下操作:

1、點擊授權,此時點擊“取消”拒絕授權

2、再次點擊授權,此時由於判斷用戶已經拒絕過授權,所以會去調用showModal顯示確認授權框,此時點擊”確定“,回去調用openSetting。這個時候見控制台,就會有如下提示

openSetting:fail can only be invoked by user TAP gesture.

 

提供一個最簡復現 Demo

代碼片段:wechatide://minicode/PrIPLomJ7222

 

- 結論及解決方案

經官方開發解答,由於封裝的過程中使用了promise的方式去處理回調才導致的問題,改成直接普通的回調方式即可解決問題;

因此也就是原來的判斷方式和流程不變,只需要修改一下回調方式即可。

解決后的代碼片段:wechatide://minicode/wyAMUrmb7X2L

 

 
 

 

  此文章為轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM