开发者可以通过 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 以下的环境中不受此策略影响。
你这个代码片段我打开试了的,现在也会报错提示让你去点击按钮了
这是什么鬼啊,有时有用户的,有时有地理的,有时什么都没有。这还怎么设置,文档有没详细说明,这也太坑爹了
我在model里打不开openSetting啊!
第二种方式不能用,什么意思 如果不能用 可不可以改一下文档
<view bindtap='saveImage'>保存</view>
saveImage: function() {
let that = this;
wx.getSetting({
success: res => {
if (res.authSetting['scope.writePhotosAlbum'] == false) {
wx.openSetting({
success: (res2) => {
res2.authSetting = {
"scope.writePhotosAlbum": true
}
}
})
} else {
that.saveMethod();
}
}
})
}
请问这样也是可以的吧?点击事件里先getSetting,再openSetting
话说这openSetting回调怎么使用。
为啥安卓调不起 ios可以呢
自己写的地址获取,用户拒绝了也能一直调起来,(其他思路应该差不多,还没写其他的,亲测有效@手机端)
今天又用到这个授权设置 !然后之前的接口恶意调用改成了 自定义组件的恶意调用~ 听说过防君子不防小人吗~!这个理由不接受
小游戏里没有bindtap和open-type属性,请问应该怎么处理?