uni-app百度地图bug:使用uni.chooseLocation应用直接退出

uni-app百度地图bug:使用uni.chooseLocation应用直接退出

开发环境 版本号 项目创建方式
PC开发环境操作系统 Windows HBuilderX
PC开发环境操作系统版本号 win 11 -
手机系统 iOS -
手机系统版本号 iOS 15 -
手机厂商 苹果 -
手机机型 iphone 7 plus -
页面类型 vue -
vue版本 vue2 -
打包方式 云端 -

示例代码:

uni.chooseLocation({
success: (res) => {
console.log(res);
},
fail(res) {
console.log(res);
}
})

操作步骤:

uni.chooseLocation({
success: (res) => {
console.log(res);
},
fail(res) {
console.log(res);
}
})

配置重新打包还是一样,应用直接退出

预期结果:

应用直接退出

实际结果:

应用直接退出

bug描述:

uni.chooseLocation({
success: (res) => {
console.log(res);
},
fail(res) {
console.log(res);
}
})

执行直接退出应用
9 回复

增加相关权限


没有复现您的问题,请提供一个简单的可复现的示例工程

我这边也是不显示地图 在安卓上面用百度地图的api调用uni.chooseLocation

我也是这个情况,安卓不显示地图,ios点击uni.chooseLocation闪退,请问你最后解决这个问题了吗?

还是用高德吧

百度就别想了

回复 c5454: 高德没有海外地图,百度和谷歌有,却偏偏不能用。。。。。。。

解决了么 ?

在使用 uni.chooseLocation 时,如果应用直接退出,可能是由于以下几个原因导致的。以下是一些常见的排查和解决方法:

1. 权限问题

  • 问题描述: 如果应用没有获取到必要的地理位置权限,可能会导致应用崩溃或直接退出。
  • 解决方法:
    • 确保在 manifest.json 中正确配置了权限:
      "permission": {
        "scope.userLocation": {
          "desc": "你的位置信息将用于小程序位置接口的效果展示"
        }
      }
    • 在调用 uni.chooseLocation 之前,先检查并请求权限:
      uni.authorize({
        scope: 'scope.userLocation',
        success() {
          uni.chooseLocation({
            success(res) {
              console.log('位置信息:', res);
            },
            fail(err) {
              console.error('选择位置失败:', err);
            }
          });
        },
        fail(err) {
          console.error('授权失败:', err);
        }
      });

2. 百度地图配置问题

  • 问题描述: 如果百度地图的配置不正确,可能会导致 uni.chooseLocation 无法正常工作。
  • 解决方法:
    • 确保在 manifest.json 中正确配置了百度地图的 appKey
      "mp-weixin": {
        "appid": "your-appid",
        "setting": {
          "urlCheck": false
        },
        "permission": {
          "scope.userLocation": {
            "desc": "你的位置信息将用于小程序位置接口的效果展示"
          }
        },
        "plugins": {
          "chooseLocation": {
            "version": "1.0.0",
            "provider": "wx7f6e6b3b3b3b3b3b"
          }
        }
      }
    • 确保百度地图的 appKey 是正确的,并且与你在百度地图开放平台申请的 appKey 一致。

3. API 调用问题

  • 问题描述: 如果 uni.chooseLocation 的调用方式不正确,可能会导致应用崩溃。
  • 解决方法:
    • 确保 uni.chooseLocation 的调用方式正确:
      uni.chooseLocation({
        success(res) {
          console.log('位置信息:', res);
        },
        fail(err) {
          console.error('选择位置失败:', err);
        }
      });
    • 确保在调用 uni.chooseLocation 时,应用已经初始化完成。

4. 平台兼容性问题

  • 问题描述: 不同平台(如微信小程序、H5、App)对 uni.chooseLocation 的支持可能有所不同,可能会导致在某些平台上应用崩溃。
  • 解决方法:
    • 确保你在目标平台上测试了 uni.chooseLocation 的功能。
    • 如果问题仅出现在某个特定平台,可以尝试使用平台特定的 API 或插件。

5. 调试和日志

  • 问题描述: 如果以上方法都无法解决问题,可以通过调试和日志来进一步排查问题。
  • 解决方法:
    • uni.chooseLocationfail 回调中打印错误信息:
      uni.chooseLocation({
        success(res) {
          console.log('位置信息:', res);
        },
        fail(err) {
          console.error('选择位置失败:', err);
        }
      });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!