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

NS8中@nativescript/geolocation的getCurrentLocation()无法使用求助

解决NativeScript 8中调用getCurrentLocation()的Accuracy未定义错误

这个错误源于未正确导入Accuracy枚举或定位权限配置不全,以下是具体解决步骤:

  • 正确导入所需模块
    确保同时导入getCurrentLocation和Accuracy,避免只导入部分模块:

    import { getCurrentLocation, Accuracy, enableLocationRequest } from "@nativescript/geolocation";
    
  • 配置平台定位权限

    • iOS:在App_Resources/iOS/Info.plist中添加权限描述(根据业务需求选择权限类型):
      <key>NSLocationWhenInUseUsageDescription</key>
      <string>需要访问您的位置以提供相关服务</string>
      <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
      <string>需要始终访问您的位置以提供相关服务</string>
      
    • Android:在App_Resources/Android/src/main/AndroidManifest.xml中添加权限:
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <!-- 如需后台定位,添加以下权限 -->
      <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
      
  • 调用前先请求权限
    在获取位置前必须确保已获得用户授权,示例代码:

    async function getDeviceLocation() {
      try {
        // 请求定位权限
        await enableLocationRequest();
        const location = await getCurrentLocation({
          desiredAccuracy: Accuracy.high,
          timeout: 20000,
          maximumAge: 0
        });
        console.log("获取到位置:", location);
      } catch (err) {
        console.error("获取位置失败:", err);
      }
    }
    
  • 清除项目缓存并重建
    缓存可能导致模块加载异常,执行命令清理后重新运行:

    ns clean
    ns run android # 或 ns run ios
    

内容的提问来源于stack exchange,提问作者Saša Bogićević

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:25:37