ios使用wx.getLocation获取位置报错‘getLocation:invalid signature‘

田成化
2023-12-01

问题:
ios使用微信自带方法wx.getLocation调取用户地理位置,会直接走err,输出报错是“‘getLocation:invalid signature’”

但是安卓机就没这个问题。

我看有人说
调接口获取wx.config配置所需参数的入参(页面路径),ios没有获取到最新的
于是我在app.vue里进入页面时,将当前的路径缓存起来,在自己掉位置的页面里使用。
但是解决不了我的问题

后来我看到了网上说ios刷新就能成功,我就测试了一下 ,果然是可以调用成功了!!!
然后也百度了好多,说是这个是ios本身就有这个问题。

最后在wx.ready里加了一个刷新一次页面的方法,就没问题了

解决方案:
在跳转进入获取位置页面时处理:

localStorage.setItem("updatePage",1)

获取位置页面

     wx.config({
              debug: false,
              appId: res.appId,
              timestamp: res.timestamp,
              nonceStr: res.nonceStr,
              signature: res.signature,
              jsApiList: [
                "checkJsApi",
                "onMenuShareTimeline", // 分享到朋友圈接口
                "onMenuShareAppMessage", //  分享到朋友接口
                "getLocation",
              ],
              openTagList: ["wx-open-launch-weapp"],
            });
            wx.ready(function () {
            //ios刷新页面
              if (TestUserAgent().isios && JSON.parse(localStorage.getItem("updatePage")) == 1) {
                window.location.reload();
                localStorage.removeItem('updatePage')
              }
            });

问题就可以解决啦

 类似资料: