您的位置:首页 > 移动开发 > 微信开发

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

2017-07-12 00:00 627 查看
摘要: 日常使用小技巧 - mark

如题,在不使用任何第三方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文件中做如下配置:



[ 可直接复制使用 ]

<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官方看开发文档,开发文档都会第一时间给开发者提供解决方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息