在app中若需要使用手机自带的地图,需要在app之间进行通信,以百度地图为例。
1.先找到app中的info.plist 文件这个文件包含了app的基本信息,在其下新增一个项为URL types,在URL types下加一个子项,点开item 发现已经有一个URL identifier了,再加一个并列的 URL Schemes, 在URL identifier 后填上com.baidu.sdk ,在 URL Schemes 的子项后填上baidumapSdk ,这样就配置好了所需要的 schemes
//加上 URL Schemes
2. 在所需要调用百度地图app的地方 写上
[[UIApplicationsharedApplication] openURL:[NSUR URLWithString:@"baidumap://map/place"]];
@"baidumap://map/place" 就是app调用百度地图的Url
如果需要传入参数的时候
可以在url 加上参数 如下,具体可参考百度的官方链接 http://developer.baidu.com点击打开链接
示例代码如下
NSString *start = @"天安门";
NSString *end = @"鸟巢";
NSString *city = @"北京";
NSString *way = @"driving";
NSString *urlStr = [NSString stringWithFormat:@"baidumap://map/direction?origin=%@&destination=%@&mode=%@®ion=%@",start,end,way,city];
* 注意关键参数要正确
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
以上就能够在你的app中调起百度地图的app了,当然模拟器中没有百度地图app的 可以用真机试试哦。
--关于调用其他的 如电话,短信 浏览器这些
下面也简单的写一下
电话:
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"tel://123124323(这里是电话号码)"]];
短信:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://123124323(这里是电话号码)"]];
游览器:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://baidu.com(这里是网址)"]];