概述
-canOpenURL: 和 -openURL:
工作中有时候需要判断当前设备中是否安装某款应该,这时候就需要用到Apple 提供的 - canOpenURL:
API 来测试相应 APP 的 scheme 是否有效来实现。
如何知道某个 APP 支持的所有 scheme
如何知道对应的 APP 是否在设备上呢?我们需要知道这个 APP 支持的所有 scheme,一些常用的大型应用很容易在网上可以查询到,或者自己下载IPA包,交IPA包扩展名改为ZIP,然后解压,找到Info.plist
文件,搜索 CFBundleURLSchemes 就可以看到这个 APP 给自己定义的 scheme 了。
以下列举部分常用APP Url Scheme:
QQ mqq://
微信是 weixin://
网易新闻 newsapp://
淘宝 taobao://
点评 dianping:// dianping://search
微博 sinaweibo://
weico微博 weico://
支付宝 alipay://
豆瓣fm: doubanradio://
微盘 sinavdisk://
网易公开课 ntesopen://
美团 imeituan://
人人 renren://
我查查 wcc://
1号店 wccbyihaodian://
有道词典 yddictproapp://
知乎 zhihu://
优酷 youku://
ZAKER zakeripad://
mdict mdict://
京东hd openApp.jdiPad://
易迅 icson://;yixunipad://
wunderlist wunderlist://
查找朋友 grenada://;findmyfriends://;fmf1://
查找iphone fmip1://
触宝拨号:dialer://
蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID
WIFI:prefs:root=WIFI(WIFI这几个字母一定要大写)
定位服务:prefs:root=LOCATION_SERVICES
备忘录:mobilenotes://
高德地图:iosamap://
今日头条 snssdk141://
如何使用 -canOpenURL:
由于iOS9及以后版本的系统中出于对用户隐私的保护,需要在Info.plist
中设置白名单
点击工程文件,选择相应的 Target,点击 Info 选项,展开 Custom iOS Target Properties
找到或者添加 LSApplicationQueriesSchemes 到属性列表中。同时在这个数组下面添加相应的 scheme
<key>LSApplicationQueriesSchemes</key>
<array>
<string>APP Scheme</string>
</array>
如果没有将 scheme 添加到白名单中却在 -canOpenURL: 中使用了,你的查询会报error
(需要注意的是,最多只能添加50个)
代码示例:
+ (BOOL)canOpenURL:(NSString *)url {
return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:url]];
}
[self canOpenURL:@"weixin://"];
最后
以上就是深情小蚂蚁为你收集整理的iOS判断是否安装某APP: canOpenUrl的全部内容,希望文章能够帮你解决iOS判断是否安装某APP: canOpenUrl所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复