收藏
回答

wx.openSetting方法在发布版下无法跳转设置页面,求解

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.openSetting 客户端 6.7.3 2.4.0

- 当前 Bug 的表现(可附上截图)


相同的代码在体验版中测试点击定位事件后可以跳转到打开权限设置页面,但是发布后到版本点击无任何响应,求解


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


定义一个locationUtil.js,添加以下方法,并在页面添加点击事件 (这里我用的是view的catchtap事件),调用该定位方法


const getLocation = (suceess,fail) => {

  if (wx.getLocation) {

    wx.getLocation({

      type: 'gcj02',

      success: function (res) {

        suceess(res);

      },

      fail: function (res) {

        wx.getSetting({

          success(res) {

            console.log(res);

            if (!res.authSetting['scope.userLocation']) {

              wx.openSetting({

              })

            } else {

              //打开选择地址

              wx.getLocation({

                type: 'gcj02',

                success: function (res) {

                  suceess(res);

                }

              })

            }

          },

          fail(res) {

            fail(res);

          }

        })

      }

    })

  }else {

    fail("不支持定位");

  }

}


module.exports = {

getLocation: getLocation

}


回答关注问题邀请回答
收藏

1 个回答

  • 是小白啊
    是小白啊
    2018-11-07

    需要用户点击触发

    2018-11-07
    有用
    回复 8
    • y
      y
      2018-11-07

      确定是在点击事件里面 进行的定位调用 ,目前情况是在体验版是没有问题的,可以打开设置页面,但是发布后的版本没有打开设置页面

      2018-11-07
      回复
    • 是小白啊
      是小白啊
      2018-11-07回复y

      你这写法是在回调中唤起的

      2018-11-07
      回复
    • y
      y
      2018-11-07

      你的意思是控件绑定的事件里面的不能用回调直接调用wx.opensettings() , 可是我就算判断是否有这个权限也需要调用下wx.getSetting()这个方法,依然也是要在回调中进行

      2018-11-07
      回复
    • 是小白啊
      是小白啊
      2018-11-07回复y

      可在回调中弹出一个自定义的模态框,引导用户点击唤起

      2018-11-07
      回复
    • y
      y
      2018-11-07

      OK 那我明白了 不支持在回调中打开授权管理页面对吧 谢谢

      2018-11-07
      回复
    查看更多(3)
登录 后发表内容