码迷,mamicode.com
首页 > 其他好文 > 详细

关于openSetting通过tap的调用

时间:2018-10-09 18:10:33      阅读:590      评论:0      收藏:0      [点我收藏+]

标签:app   处理   demo   直接   调用   mis   测试   chat   mini   

问题模块框架类型问题类型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

 

 
 
技术分享图片

 

 此文章为转载

关于openSetting通过tap的调用

标签:app   处理   demo   直接   调用   mis   测试   chat   mini   

原文地址:https://www.cnblogs.com/zmdComeOn/p/9761577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!