打开小程序设置页(wx.openSetting)接口调整

开发者可以通过 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 以下的环境中不受此策略影响。

最后一次编辑于  09-12  (未经腾讯允许,不得转载)
收藏 0评论 43
  • ##

    你们约束的不应该是开发者,而是恶意程序。

    我觉得你们就是懒 懒得审核那么多,干脆直接让开发者无从选择了。 就是所谓的不处理事请,只封住说事人的嘴

    赞同 8没有帮助
    评论 0
    复制
    10-07
  • 。

    也是服了,这样的改动既不利于开发者开发,用户体验又不好,就不能全都改成获取用户信息按钮一样对应每一个授权吗?????就算你 bindtap 调用showModal回调然后调用openSetting,OK是可以 ,但是加多一个saveImage接口,saveImage.then=>showModal.then=>openSetting,这样就不行了??????什么操作????  我求你们别改了好不好???或者我求求你们把授权都改成和获取用户信息的弹框一样,行不????????

    赞同 4没有帮助
    评论 0
    复制
    10-07
  • 张亚楠张亚楠

    wx.showModal()的确认按钮可以调用wx.openSetting()吗,类似这样的


    赞同 4没有帮助
    评论 11
    复制
    09-12
    • 尚

      已经到这一步了,干脆连弹窗也自定义了得了😆

      赞同 8没有帮助
      回复
      复制
      09-12
    • 刘文凯刘文凯

      官方出来说一下撒

      赞同 1没有帮助
      回复
      复制
      09-12
    • 黄思程黄思程

      可以,只要showModal调用是在bindtap里

      赞同 0没有帮助
      回复
      复制
      09-12
    • 展示更多
    评论
  • YCJYCJ

    云服务不错

    赞同 4没有帮助
    评论 0
    复制
    09-12
  • 2727

    我就想说,多此俩举。


    我不管你怎么设计的。我就问你,这样的东西用户用起来爽不爽。


    你以为不让直接跳转到设置页面,就完事大吉了????????


    赞同 2没有帮助
    评论 0
    复制
    09-17
  • 陈锐陈锐

    貌似行不通

    赞同 1没有帮助
    评论 12
    复制
    09-13
    • johonjohon

      我测试了确实也是不行,提示

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


      赞同 0没有帮助
      回复
      复制
      09-13
    • 陈锐陈锐
      回复johon

      和官方说的一致   点击触发(bindtap)才能调用wx.openSetting

      赞同 0没有帮助
      回复
      复制
      09-13
    • johonjohon
      回复陈锐

      我测试的是这种场景不行


      赞同 0没有帮助
      回复
      复制
      09-13
    • 展示更多
    评论
  • 网点网点

    先别说文档整的怎么样,装B的境界还是可以肯定的。

    赞同 1没有帮助
    评论 0
    复制
    09-12
  • 半寸灰半寸灰

    我想问下  使用

    wx.showModal


    点确定 跳到

    openSetting

    这算是点击么

    赞同 1没有帮助
    评论 7
    复制
    09-12
    评论
  • 一个programmer一个programmer

    云服务nice呀

    赞同 1没有帮助
    评论 0
    复制
    09-12
  • 张瑶张瑶

    bindmarkertap 这个点击事件里面行吗?


    赞同 0没有帮助
    评论 0
    复制
    昨天 14:26