uni-app 使用 uni.chooseLocation 时 ios端列表显示暂无数据(本地和打包都不行),安卓正常显示

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app 使用 uni.chooseLocation 时 ios端列表显示暂无数据(本地和打包都不行),安卓正常显示

操作步骤

一直都不行,只要使用chooseLocation都是空白列表

预期结果

可以按正常选择地图和展示列表

实际结果

一直都不行,只要使用chooseLocation都是空白列表

bug描述

image

开发环境与项目信息

信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 window10
HBuilderX类型 正式
HBuilderX版本号 4.45
手机系统 iOS
手机系统版本号 iOS 17
手机厂商 苹果
手机机型 iPhone 13
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

2 回复

key配置是正常的,但最后也是只有安卓可以,ios不行,展示空白列表



针对你提到的 uni-app 在使用 uni.chooseLocation 时,iOS端列表显示“暂无数据”的问题,而安卓端正常显示,这里提供一些可能的解决方案和代码示例。这个问题通常是由于iOS平台的权限问题或者数据获取问题导致的。

1. 检查权限配置

首先,确保你的iOS项目已经正确配置了地理位置权限。在manifest.json中,你需要添加或确认以下配置:

"mp-weixin": {
  "appid": "your-appid",
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
  }
},
"plus": {
  "distribute": {
    "apple": {
      "plist": [
        {
          "key": "NSLocationWhenInUseUsageDescription",
          "string": "需要您的地理位置信息以便为您提供服务"
        },
        {
          "key": "NSLocationAlwaysUsageDescription",
          "string": "需要您的地理位置信息以便为您提供服务(后台运行时)"
        }
      ]
    }
  }
}

2. 使用 uni.chooseLocation 调用示例

确保你的调用代码符合规范,下面是一个基本的调用示例:

uni.chooseLocation({
  type: 'gcj02', // 返回可以用于 `uni.openLocation` 的经纬度
  success: function (res) {
    console.log('位置选择成功:', res);
    // 可以使用 res.name, res.address, res.latitude, res.longitude
  },
  fail: function (err) {
    console.error('位置选择失败:', err);
    // 处理失败情况,比如显示错误信息
    uni.showToast({
      title: '暂无数据',
      icon: 'none'
    });
  }
});

3. 调试和日志

在iOS设备上调试时,可以使用Xcode来查看具体的错误日志。连接你的iOS设备到Mac,使用Xcode运行你的应用,并在控制台中查看输出。这可能会给你一些关于为什么“暂无数据”的线索。

4. 注意事项

  • 确保你的应用有网络访问权限,因为uni.chooseLocation可能需要从服务器获取数据。
  • 如果你在使用uni-app的某些特定版本,检查是否有相关的已知问题或更新。
  • 尝试在不同的iOS设备和iOS版本上测试,以排除特定设备或版本的问题。

通过上述步骤,你应该能够定位并解决uni.chooseLocation在iOS端显示“暂无数据”的问题。如果问题仍然存在,可能需要更深入地检查你的代码或配置。

回到顶部