iOS 判断移动设备是否安装微信或QQ

原创
2017/07/12 17:26
阅读数 5K

如题,在不使用任何第三方SDK的情况下,可简单通过如下方式判断

// 是否安装微信
BOOL wechat = [[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"mqqapi://"]];

// 是否安装QQ
BOOL qq     = [[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"weixin://"]];

在未在项目中info.plist文件中配置白名单的情况下,直接运行,Xcode控制台有如下提示:

-canOpenURL: failed for URL: "mqqapi://" - error: "This app is not allowed to query for scheme mqqapi"
-canOpenURL: failed for URL: "weixin://" - error: "This app is not allowed to query for scheme weixin"

[ 原因分析 ]

在iOS9版本以后需要增加一个信任的可跳转的白名单,才能进行应用之间的唤起。

如需要通过此方式判断移动设备是否安装指定的应用,应该在工程的info.plist文件中做如下配置:

可信任app

[ 可直接复制使用 ]

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>mqqOpensdkSSoLogin</string>
    <string>mqzone</string>
    <string>sinaweibo</string>
    <string>alipayauth</string>
    <string>alipay</string>
    <string>safepay</string>
    <string>mqq</string>
    <string>mqqapi</string>
    <string>mqqopensdkapiV3</string>
    <string>mqqopensdkapiV2</string>
    <string>mqqapiwallet</string>
    <string>mqqwpa</string>
    <string>mqqbrowser</string>
    <string>wtloginmqq2</string>
    <string>weixin</string>
    <string>wechat</string>
</array>

上面的Schemes设置涉及:qq登录绑定、qq支付、qq分享、微信支付、微信登录绑定、新浪登录绑定、支付宝支付、支付宝登录绑定

[ 总结 ]

涉及到客户端的跳转,都需要设置scheme到LSApplicationQueriesSchemes,如使用第三方,可直接看其官网,要不访问提供方的如微信,QQ,支付宝API官方看开发文档,开发文档都会第一时间给开发者提供解决方案。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部