这功能早就做了,最近又在弄,所以记录下代码,免得岁数大了,健忘!

第一步:配置白名单

只有在info.plist文件里添加相应地图白名单,才可以检测到该应用,如图

第二步:检测是否安装了地图app

放在一个数组里,方便弹窗显示,我这里自定义了一下,大家随意哈,不必像我再定义model

/***  获取可选的导航地图模型**  @return 数组存放JCNaviTypeModel*/
+ (NSArray *)selectableNaviMapModelArr {NSMutableArray *selectableNaviArr = [NSMutableArray array];
//    // app内导航
//    JCNaviTypeModel *inAppNaviModel = [[JCNaviTypeModel alloc] initWithName:@"语音导航" naviType:JCNaviType_InApp];
//    [selectableNaviArr addObject:inAppNaviModel];// 遍历手机的地图if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"iosamap://"]]) {JCNaviTypeModel *model = [[JCNaviTypeModel alloc] initWithName:@"高德地图" naviType:JCNaviType_Amap];[selectableNaviArr addObject:model];}if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"baidumap://"]]) {JCNaviTypeModel *model = [[JCNaviTypeModel alloc] initWithName:@"百度地图" naviType:JCNaviType_BMK];[selectableNaviArr addObject:model];}if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"http://maps.apple.com/"]]) {JCNaviTypeModel *model = [[JCNaviTypeModel alloc] initWithName:@"苹果地图" naviType:JCNaviType_Apple];[selectableNaviArr addObject:model];}return selectableNaviArr;
}

第三步:跳转到相应app

NSString *externNaviURL;NSString *naviModeString = [self naviModeStringWithNaviMode:naviMode NaviType:model.naviType];if (model.naviType == JCNaviType_Amap) {// 高德externNaviURL = [[NSString stringWithFormat:@"iosamap://path?sourceApplication=%@&sid=BGVIS1&did=BGVIS2&dlat=%lf&dlon=%lf&dev=0&m=0&t=%@",@"--",endPoint.latitude,endPoint.longitude,naviModeString] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}else if (model.naviType == JCNaviType_BMK) {// 百度externNaviURL = [[NSString stringWithFormat:@"baidumap://map/direction?origin={{我的位置}}&destination=latlng:%f,%f|name=目的地&mode=%@&coord_type=gcj02",endPoint.latitude, endPoint.longitude,naviModeString] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}else if (model.naviType == JCNaviType_Apple) {// 苹果externNaviURL = [[NSString stringWithFormat:@"http://maps.apple.com/?saddr=%f,%f&daddr=%f,%f",startPoint.latitude,startPoint.longitude,endPoint.latitude, endPoint.longitude] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}// 跳转if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:externNaviURL]]) {[[UIApplication sharedApplication] openURL:[NSURL URLWithString:externNaviURL]];}

收工!!!!!!!!

转战js。。。。。。路漫漫其修远兮

iOS-82-自己APP地图内检测是否安装了其他地图(百度地图、高德地图、苹果地图),以及跳转相关推荐

  1. ios中在app应用内刷新小组件数据

    需求: 我们需要在app应用内刷新时间线,让桌面小组件加载最新的内容.即app内修改了共享数据后,需要通知桌面小组件强制刷新,显示改变后的内容. 当某种情况影响到小组件的当前时间线时,您的 App 可 ...

  2. android开发游记:APP内部调启百度、高德、web地图导航

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 使用方法 下面解释主要代码 一些地图相关的app一般都需要集成导航的功能方便用户使用,但实际上我们很多时候仅仅只是希望提供这样一 ...

  3. 在线下载离线地图瓦片 (支持百度、高德和谷歌地图)

    制作离线地图,下载百度矢量数据制作3D地图,下载离线地图数据,下载离线地图瓦片.支持三个主流地图数据(百度.高德和谷歌). 下载网址:http://wmksj.com/ 1. 点击"地图下载 ...

  4. 【IOS】 In App Purchase 内置购买 总结

    上一个项目用到了In App Purchase,发现现在大家对这个挺关注的,把上次写的总结贴出来给大家看一下,希望对大家有点帮助! 两种方案 一, 我的程序具体步骤 1 添加Storekit.Fram ...

  5. IOS学习之——地图3 调用苹果地图

    欢迎转载,转载请注明出处 本文地址:http://blog.csdn.net/zhenggaoxing/article/details/42710853 综述: 这里的苹果地图调用是指从咱们的软件跳转 ...

  6. 苹果地图副总裁_苹果地图导致多名高管离职背后的真实原因

    失去了乔布斯的苹果,头顶上的高科技光环日益衰退,苹果一直致力于打造世界上用户体验最好的科技产品,但是没有了灵魂人物乔布斯,苹果产品的科技灵魂似乎也被带走了,苹果地图就是最好的例证. IT商业新闻网讯 ...

  7. 如何下载谷歌/百度/高德大字体地图用于打印

    下载的地图如果需要打印的话,就需要地图的字体比较大看起来才匀称和好看,那么如何下载大字体的地图呢,这里给大家介绍一个下载大字体地图的方法.本文以下载谷歌地图的大字体地图为例,下载百度和高德的大字体地图 ...

  8. 刚上路的苹果地图:急需提升用户体验

    苹果新推送的iOS6自带地图麻烦了.弃用谷歌地图改用苹果自己开发的地图招致了诸多批评,有评论指出,苹果的"去谷歌化"这一举措并没有考虑到用户的感受,虽说苹果在地图市场初出茅庐,无法 ...

  9. html百度站内搜索代码,百度站内搜索如何安装 百度站内搜索代码如何部署使用...

    按照以下步骤,只需几分钟就可以完成站内搜索引擎的安装: 使用普通百度账号或百度联盟账号,均可开通站内搜索.点击此处去注册账号. 验证站点是为了证明您对该站点的所有权,您可以选择下载文件验证.html标 ...

最新文章

  1. 编译工具 之 ant
  2. gunzip 和 unzip 解压文件到指定的目录
  3. android源码framework下添加新资源的方法
  4. snmpwalk用法
  5. 原型共享数据 原型简单语法 原型中方法是可以相互访问 实例对象属性方法层层搜索
  6. Codeforces Beta Round #5 B. Center Alignment 模拟题
  7. 本地项目antd 修改.less文件导致内存溢出
  8. c++心形代码_c语言心形告白代码实现
  9. 【收藏】李纪为:初入NLP领域的一些小建议
  10. 完整的python项目实例-python完整项目
  11. win7迁移系统0x0000007B蓝屏添加NVMe驱动解决
  12. NETWARE系统加入服务器,Linux操作系统下配置Netware服务器方法
  13. 微软家庭服务器,微软下一代Windows家庭服务器Vail初印象
  14. phpAdmin中id字段如何设置自增
  15. Elasticsearch概念
  16. mybatis配置文件 .dtd头部约束 出错报红 【亲测实用,可供参考】
  17. 苹果x专用计算机下,电脑卡iPhoneX在线软件
  18. android 瀑布流 github,GitHub - youxilua/waterfall4android: android瀑布流
  19. sql server使用教程(图文)
  20. slice,splice,split区别和作用

热门文章

  1. 历史上三大骑士团的崛起与演变
  2. Oracle中的分区
  3. 228 用excel实现数据以逗号分隔,在mysql查询时IN方便
  4. 日紫白飞星算法_陈春林|紫白飞星排布技巧
  5. 手机里面用那个芯片控制屏幕_『学』手机的屏幕封装工艺
  6. iOS 闪退与内存管理
  7. phpExcel 导出
  8. 将网页上所有canvas下载为图片
  9. 如何提取网页中所有链接
  10. 小米平板4上的Debian Linux(Droidian)方便日常使用的一些设置