入门指南 最后更新时间: 2024年01月02日
Android 端
浏览器中打开高德地图 App
例如在 H5 页面中跳转到高德地图 App,或者在本地 App 中加载的 H5 页面跳转到高德地图 App,需要使用 scheme 调用,在 H5 中的链接中加入高德地图的 Scheme 即可,如(以导航为例):
<a href="androidamap://navi?sourceApplication=appname&poiname=fangheng&lat=36.547901&lon=104.258354&dev=1&style=2">导航</a>
本地App中打开高德地图App
这种场景即在本地 App 中通过 Java 代码调用高德地图页面功能,此时就需要使用 Intent 调用。同样以导航功能为例:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
//将功能Scheme以URI的方式传入data
Uri uri = Uri.parse("androidamap://navi?sourceApplication=appname&poiname=fangheng&lat=36.547901&lon=104.258354&dev=1&style=2");
intent.setData(uri);
//启动该页面即可
startActivity(intent);
上述URI调用参数的具体含义请参见Android URI 详细文档
iOS 端
配置白名单
由于 iOS 的限制,iOS 系统在 9 之后的版本中,如果开发者的 App 希望调起高德地图,必须在自己 App 的设置中配置白名单。
配置方法:
- 找到您的 Info.plist 文件
- 在文件中添加key:LSApplicationQueriesSchemes,类型是 Array,如果曾经添加过,无需再次添加。
- Array 中添加一个 item,类型为 String,值为 iosamap。
添加完成后截图如下:
判断是否安装了高德地图
配置完成后,您就可以在自己的 App 中判断高德地图是否已安装。
示例代码如下:
NSURL *scheme = [NSURL URLWithString:@"iosamap://"];
BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:scheme];
如果 canOpen 为 YES,则安装了高德地图;如果 canOpen 为 NO,则未安装高德地图。
调起高德地图
使用 iOS 提供高德 API 即可调起高德地图,需要注意的是从 iOS10 版本起,API 有更新。
NSURL *myLocationScheme = [NSURL URLWithString:@"iosamap://myLocation?sourceApplication=applicationName"];
if ([[UIDevice currentDevice].systemVersion integerValue] >= 10) {
//iOS10以后,使用新API [[UIApplication sharedApplication] openURL:myLocationScheme options:@{} completionHandler:^(BOOL success) { NSLog(@"scheme调用结束"); }];
} else {
//iOS10以前,使用旧API [[UIApplication sharedApplication] openURL:myLocationScheme];
}