1. 程式人生 > >關於openSetting通過tap的調用

關於openSetting通過tap的調用

由於 就是 會有 終端類型 body input yam tro 名稱

問題模塊框架類型問題類型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

wechatide://minicode/PrIPLomJ7222 技術分享圖片

此文章為轉載

關於openSetting通過tap的調用