地图的集成是很简单的,但是要做导航开发还是有一定的工作量,而且体验上并且有百度地图,高德的图和腾讯地图好,所以从app跳转到第三方去导航就是一个比较好的解决方案.
要掉
- App内根据手机上装载的地图App将其显示在弹出的选择框,选择对应地图跳转进入地图导航。需要用到
- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);
方法判断手机是否已安装相应地图App。 - 要进行跳转需要先在xcode的plist文件内将目标App的url Scheme加入白名单(LSApplicationQueriesSchemes)。
常见第三方地图App的url Scheme
- 百度地图:baidumap
- 高德地图:iosamap
- 谷歌地图:comgooglemaps (国内无法使用这个scheme检验)
- 腾讯地图:qqmap
plist白名单设置
plist文件新增LSApplicationQueriesSchemes
关键字,类型为NSArray,并在其下添加子目录,类型为NSString,内容为各地图对应的url Scheme。
![img](https:////upload-images.jianshu.io/upload_images/3820289-92f9f67b5106c0cb.png?imageMogr2/auto-orient/strip | imageView2/2/w/486) |
判断是否安装相应地图app
1 |
|
使用对应的地图app打开并导航
1 |
|
存在的问题:
- 苹果原生地图是可以卸载的, 但是没有合适的办法判断用户是否已经安装了原生的地图, 当用户没有安装时, 会有一个系统弹窗提示用户去app下载, 而且这个弹窗会弹两次,美团可大众点评都是如此,如有有解决办法请告知s