收藏
回答

微信公众号页面使用JSSDK的wx.getLocation获取位置信息,偶发所有回调都不执行?

JsSDK版本:1.6.0

API名称:wx.getLocation

问题描述:在iOS16、iOS15中,将系统设置中的微信->位置设置为“下次询问或在共享时”,使用微信进入公众号网页,在弹出的定位授权提示框中选择不允许,wx.getLocation就挂了,包括success、fail、cancel、complete在内的所有回调都不执行,代码无法继续往下运行。

代码:

wx.ready(() => {
  wx.getLocation({
      type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
      success: function (res) {
          console.log('授权成功', res)
          const latitude = res.latitude // 纬度,浮点数,范围为90 ~ -90
          const longitude = res.longitude // 经度,浮点数,范围为180 ~ -180。
          if (longitude && latitude) {
              localStorage.setItem(StorageKeysEnum.LNGLAT, `${longitude},${latitude}`)
              resolve()
          } else {
              Dialog.alert({
                  title: '定位失败!',
                  message: '请在系统设置中打开微信定位权限',
                  confirmButtonColor: '#3eba5c',
              })
              reject()
          }
      },
      fail: (e) => {
          console.log('获取定位失败:', e)
          Dialog.alert({
              title: '定位失败!',
              message: '请在系统设置中打开微信定位权限',
              confirmButtonColor: '#3eba5c',
          })
          reject()
      },
      cancel: (res) => {
          console.log('取消授权', res)
          reject()
      },
      complete: (res) => {
          console.log('授权完成:', res)
      },
  })
})
回答关注问题邀请回答
收藏

1 个回答

  • 随机数
    随机数
    2023-09-21

    是什么原因那 我在ios14 上也遇到 有时会不执行任何回调 有时可以执行

    2023-09-21
    有用
    回复
登录 后发表内容