文档章节

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

-Jinfei-
 -Jinfei-
发布于 2017/07/12 17:26
字数 398
阅读 204
收藏 0

如题,在不使用任何第三方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官方看开发文档,开发文档都会第一时间给开发者提供解决方案。

© 著作权归作者所有

共有 人打赏支持
-Jinfei-
粉丝 0
博文 6
码字总数 3547
作品 0
广州
iOS工程师
私信 提问
Phonegap各类商业插件

【Phonegap商业插件服务】[目前插件已经支持到Phonegap最新版本] 1.phonegap-百度社会化分享-andriod插件 v2.0 【该插件支持微信分享和朋友圈分享,qq好友分享,微博分享】 2.phonegap百度社...

夜澜小雨
2015/07/15
1K
0
js在微信、微博、QQ、Safari唤起App的解决方案

背景 最近在做微信、QQ、微博中使用js唤起App,之前也做过类似的功能,不过比较粗糙,考虑的情况不太全,而且那已经是很久之前的事情了,很多技术都已过时,现在有体验更好,功能更加完善的唤...

发布于
2018/08/03
0
0
socialshare插件在IOS环境下无法分享微信和QQ

这是在IOS下 只能分享到微信和邮箱,而这个插件我在安卓下使用的时候是可以分享到QQ和微信的,IOS也安装QQ微信了

路路路路路
2015/09/11
98
0
Android-微信浏览器/qq浏览器内如何实现调用并打开手机第三方应用?

背景: 公司app有个需求,分享的新闻链接能用自己的app打开浏览,未安装时引导用户安装; 平台:android/ios; 分享SDK:友盟社会化分享SDK 目前方案: android客户端使用intent-filter过滤设...

清风烈酒-
2015/05/13
12.3K
2
ios下获取所有实体/虚拟网卡的信息,并以此判断设备所处的网络状态

一直在做移动设备网络方面的开发,最近项目需要解决ios设备判断是否打开个人热点。 经过网上搜索,找到一个比较笨的办法,就是通过获取status bar高度是否等于40来判断热点状态。当有其他设备...

luan.ma
2013/10/17
0
2

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxprobe16
45分钟前
5
0
OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
今天
59
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部