Android 端

如果您需要在浏览器中打开高德地图App,例如在H5页面中跳转到高德地图App,或者在本地App中加载的H5页面跳转到高德地图App,需要使用scheme调用,在H5中的链接中加入高德地图的Scheme即可,如(以导航为例):导航

如果您需要在本地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 端

步骤 1:配置白名单 由于iOS的限制,iOS系统在9之后的版本中,如果开发者的app希望调起高德地图,必须在自己app的设置中配置白名单。

配置方法:

1、找到您的Info.plist文件

2、在文件中添加key:LSApplicationQueriesSchemes,类型是Array,如果曾经添加过,无需再次添加。

3、Array中添加一个item,类型为String,值为iosamap。

添加完成后截图如下:

c351156b012492b73ec4384ad20cb73a.png

步骤 2:判断是否安装了高德地图

配置完成后,您就可以在自己的app中判断高德地图是否已安装。

示例代码如下:NSURL *scheme = [NSURL URLWithString:@"iosamap://"];

BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:scheme];

如果canOpen为YES,则安装了高德地图;如果canOpen为NO,则未安装高德地图。

步骤 3:调起高德地图

使用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];

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐