openSetting 延迟问题 @官方大大 @卢霄霄大神
发布于 5 年前 作者 dluo 18591 次浏览 来自 问答

如:在openSetting设置定位授权,回调结果后马上调用getLocation会出现没有授权,使用延迟调用可以正常调用。

初步判断,openSetting的结果是异步发送至微信后台,马上调用getLocation的话会出现授权结果不一致。

请问有什么解决方案?

5 回复

说起来遇见过一个跟你类似的问题,他也是openSetting设置授权后,回来第一次getLocation会失败,接下来的第二次会成功,。。

https://developers.weixin.qq.com/community/develop/doc/00042a94240d70872277518f351000

官方没来回答原因。。

<button open-type=“openSetting” bindopensetting=“callback”>

这里有callback,可以实时获取到用户的授权结果,只能在回调里处理了,getSetting不实时

wx.getLocation({

    type: ‘wgs84’,

    success: function (res) {

        // 第一次在设置页面允许授权后,再次获取不会走success, 第二次在设置页面允许会走success

    },

    fail: function (e) {

       // 第一次在设置页面允许授权后,返回获取权限会走fail函数(其实应该是success)

        wx.getSetting({

            success(res) {

                //   这时候 res.authSetting[‘scope.userLocation’] 值为true  可以进行判断

              res.authSetting[‘scope.userLocation’]) == true

             }

        })

    }

})

确实如你猜测的,操作结果是异步写到微信后台的。我们在考虑方案,后续解决此类问题。

回到顶部