今天项目中有一需求,判断手机上是否安装百度或高德地图,如果安装了,点击导航时选择百度,高德,或苹果地图,如果没有安装则直接苹果地图导航。
具体实现:
获得百度和高德的url Scheme
百度地图:baidumap
高德地图:iosamap
2.添加到app项目中的info.plist白名单
3.用Application 的canopenUrl 的方法判断 (YES代表已安装)
BOOL baiduMap = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"baidumap://"]]; //baidu地图
BOOL gaodeMap = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"iosamap://"]]; //高德地图
从上面的方法中猜想如果知道某一个APP的url Scheme是不是可以判断任意APP在手机上是否安装呢?
方法一 根据APP的 url Scheme判断
(1).获取Ipa包的方法
(2).将ipa包后缀改为.zip,解压,找到包文件,如下如,显示包内容。
(3).包内容里的info.plist文件