You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端始终允许定位权限选项不显示问题求助(Ionic+Angular)

解决iOS设置中不显示“始终允许”位置权限的问题

1. 修正Info.plist的Key格式错误

你提供的配置里第一个Key前有多余空格,这会导致iOS无法识别该权限描述:

<!-- 错误写法(key前含空格) -->
<key> NSLocationAlwaysAndWhenInUseUsageDescription</key>
<!-- 正确写法 -->
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>

确保所有<key>标签内的权限名称无前后空格,这是新手极易忽略的细节。

2. 遵循iOS 13+的权限请求规则

iOS 13及以后版本不支持直接请求“始终允许”权限,必须按以下流程操作:

  • 先请求「使用期间允许」(WhenInUse)权限
  • 用户授权后,再请求「始终允许」(Always)权限

在Ionic代码中,借助@capacitor/geolocation插件实现分步骤请求:

import { Geolocation } from '@capacitor/geolocation';

async function requestLocationPermissions() {
  // 第一步:请求使用期间权限
  const whenInUseResult = await Geolocation.requestPermissions({
    permissions: ['locationWhenInUse']
  });
  
  if (whenInUseResult.locationWhenInUse === 'granted') {
    // 第二步:请求始终允许权限
    await Geolocation.requestPermissions({
      permissions: ['locationAlways']
    });
  }
}

3. 同步Capacitor配置到iOS项目

修改Info.plist后,必须执行同步命令确保配置生效:

npx cap sync ios

4. 真机测试注意事项

  • 必须在真实iOS设备上测试,模拟器的权限逻辑与真机存在差异
  • 测试前删除设备上的旧应用,避免缓存的权限设置干扰

完成以上操作后,打开iOS设置→你的应用→位置权限,即可看到「始终允许」选项。

内容的提问来源于stack exchange,提问作者KaptainIglo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 15:42:16