uniapp离线打包app如何配置高德地图

“请教一下各位大佬,我在使用Uniapp进行离线打包APP时,想配置高德地图功能,但不太清楚具体需要修改哪些配置文件和参数?有没有详细的步骤教程或者注意事项可以分享一下?感谢!”

2 回复

在HBuilderX中,配置高德地图需以下步骤:

  1. 在高德开放平台申请AppKey
  2. 在manifest.json的“App模块配置”中勾选“Maps(地图)”
  3. 选择高德地图,填写申请的AppKey
  4. 离线打包时,需在原生工程中配置相同Key

注意:iOS和Android需分别申请Key。


在 UniApp 离线打包中配置高德地图,需要以下步骤:

1. 获取高德地图 SDK

2. Android 配置

步骤:

  1. 将下载的 Android SDK(如 AMap_Location.jar 和 so 文件)放入离线工程的 libs 目录。
  2. AndroidManifest.xml 中添加权限和配置:
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 定位权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- 在高德平台申请的 AppKey -->
<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="您的Android AppKey" />
  1. build.gradle 中确认已添加依赖:
implementation fileTree(dir: 'libs', include: ['*.jar'])

3. iOS 配置

步骤:

  1. 将 AMapKit 框架添加到 Xcode 工程中,并确保勾选 “Copy items if needed”。
  2. 添加依赖库:
    • CoreLocation.framework
    • SystemConfiguration.framework
    • CoreTelephony.framework
    • libz.tbdlibz.dylib
    • libc++.tbd
  3. Info.plist 中添加权限和 AppKey:
<key>NSLocationWhenInUseUsageDescription</key>
<string>需要定位权限以使用地图功能</string>
<key>AMapApiKey</key>
<string>您的iOS AppKey</string>
  1. AppDelegate.m 中导入头文件并配置 Key(如使用 SDK 需初始化):
#import <AMapFoundationKit/AMapFoundationKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [AMapServices sharedServices].apiKey = @"您的iOS AppKey";
    return YES;
}

4. UniApp 页面调用

在 Vue 页面中使用 uni.getLocation 或引入高德地图组件(如使用 map 组件):

uni.getLocation({
    type: 'gcj02', // 高德坐标系
    success: (res) => {
        console.log('纬度:' + res.latitude);
        console.log('经度:' + res.longitude);
    }
});

注意事项:

  • 确保 Android 和 iOS 的 AppKey 正确,且包名与高德平台注册一致。
  • 离线打包需自行处理权限申请和地图初始化。
  • 若使用第三方 SDK,注意混淆规则(Android)和隐私合规。

完成以上配置后,重新编译打包即可使用高德地图功能。

回到顶部