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

React Native应用如何仅请求大致位置权限?

React Native 如何仅请求大致位置权限(取消"Precise:On"默认状态)

无需修改设备默认设置,仅需调整应用的权限请求代码和配置文件即可实现需求,分平台操作如下:

Android 端处理

  • 替换权限类型:你当前请求的ACCESS_FINE_LOCATION是精确定位权限,需改为ACCESS_COARSE_LOCATION(大致位置权限),修改后的代码如下:
    if (Platform.OS === 'android') {
      auth = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
        {
          message: '应用需要获取您的大致位置',
          title: '位置权限申请',
          buttonPositive: '允许',
        },
      );
    }
    
  • 更新Manifest配置:在android/app/src/main/AndroidManifest.xml中,确保声明的是大致位置权限:
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 移除或注释掉ACCESS_FINE_LOCATION权限声明 -->
    <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> -->
    
    修改后,Android系统的权限弹窗将只会请求大致位置访问权限,不会显示精确定位相关选项。

iOS 端处理

iOS 14+支持模糊定位(大致位置),需通过配置默认开启该模式:

  • 添加Info.plist配置:在ios/[你的项目名称]/Info.plist中新增以下键值对,设置默认使用模糊定位:
    <key>NSLocationDefaultAccuracyReduced</key>
    <true/>
    
  • 权限请求代码:原有代码可保留,但添加上述配置后,权限弹窗会默认以大致位置模式请求,不再默认显示"Precise:On"状态。若需明确告知用户需求,可调整提示文案:
    } else if (Platform.OS === 'ios') {
      auth = await Geolocation.requestAuthorization('whenInUse');
    }
    

(用户提供的弹窗截图:显示iOS权限弹窗中"Precise"选项处于"On"状态)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:20:31