iOS 判断移动设备是否安装微信或QQ
博客专区 > -Jinfei- 的博客 > 博客详情
iOS 判断移动设备是否安装微信或QQ
-Jinfei- 发表于4个月前
iOS 判断移动设备是否安装微信或QQ
  • 发表于 4个月前
  • 阅读 18
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 日常使用小技巧 - 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文件中做如下配置:

可信任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
博文 6
码字总数 3547
×
-Jinfei-
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: