开发者可以通过 wx.openSetting
接口来打开小程序设置界面并返回用户的设置结果。在原来的 wx.openSetting
接口中,我们允许开发者直接调用此接口,但目前我们发现有不少开发者滥用此接口,使用户在无任何操作时,不断地强行跳转至设置页,导致用户无法正常使用甚至无法退出小程序。
为保证用户获得更顺畅的小程序使用体验,避免此类滥用情况,我们对该接口进行了调整。
调整后“打开小程序设置页”将支持以下两种实现方式:
方法1:使用
button
组件来使用此功能,示例代码如下:<button open-type="openSetting" bindopensetting="callback">打开设置页</button>
方法2:由点击行为触发
wx.openSetting
接口的调用,示例代码如下:<button bindtap="openSetting">打开设置页</button> openSetting() { wx.openSetting()}
方法2已在最新版开发者工具中支持(基础库切到2.2.4及以上),开发者可以尽早适配。
此次调整会对直接调用wx.openSetting接口造成影响
原无需用户点击即可直接调用wx.openSetting接口的实现方式将不再支持,即将废弃的错误使用方式示例如下:
onShow() { wx.openSetting()}
10月10日起新提交发布的版本将会受到此调整的影响。
需要各位开发者注意,10月10日起新提交发布的小程序版本将不再支持无需用户点击即可直接调用的“打开小程序设置页”接口,请开发者尽早适配。
调整策略在基础库 2.3.0 及以上版本生效,该基础库版本对应微信客户端6.7.2版本。另外,考虑到兼容性等问题,在基础库版本 2.3.0 以下的环境中不受此策略影响。
亲测可行
看到你们都在漫骂那我就放心了。。。让他们装逼!!!
萌新表示授权真的累
啧啧,越改越恶心,搞毛线啊;哥们还是去做Android吧,混合开发也不错; 这他么小程序被玩烂了
封装promise 的showmodal里调用openSetting也是支持的
就是调用起来需要把success函数传入。暴露resolve。和confirm和cancel的值。在这里调用openSetting。或者封装的openSetting也可以
唯一的缺点就是async写起来有点奇怪
各种因为部分开发者滥用功能后不去限制开发者的恶意程序,而去限制功能的做法,让我怀疑过去建议客户“只需要开发小程序而不用开发原生APP”的做法是否正确了,以后可能还是建议客户开发原生APP,大不了一样功能一样的报价。省了填坑的成本
为什么用户拒绝了你的地址授权后,再次点击同一个地方的时候,不再次唤起授权弹窗,非得搞这么多openSetting这些东西呢???这么麻烦呢!!!!还有你们的button真的很难用!样式真心不好调,还容易有样式兼容问题
我不管用方法一还是方法二授权列表都是空白的,电脑重启了都没用,打开后还是空白的,手机也一样
工具上的测试效果
wxml、
js代码
页面直接写
<web-view src="http://wap.tusousouxr.com"></web-view>
这样的可以么