iOS应用如何检测第三方app是否安装及跳转解决方案
最近在做支付宝支付,需要验证客户端是否安装支付宝钱包App,可通过Url Scheme框架实现。
1、以支付宝为例,验证是否安装支付宝开发步骤:
step1. 验证手机端是否安装支付宝应用
NSURL * alipay_app_url =[NSURL URLWithString:@"alipay://"];
BOOL ali =[[UIApplication sharedApplication]canOpenURL:alipay_app_url];
ali == YES 已安装 、 ali == NO 未安装
若想跳转至支付宝app:[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"alipay://"]];
step2. 在infor.plist文件中添加LSApplicationQueriesSchemes & CFBundleURLTypes配置
2、可能出现的控制台Log打印err信息
1)-canOpenURL: failed for URL: "alipay://" - error: " This app is not allowed to query for scheme alipay "
此错误是未在infor.plist文件中配置urlscheme,执行step2.操作即可解决
2)-canOpenURL: failed for URL: "alipay://" - error: " The operation couldn’t be completed.(OSStatus error -10814.)”
此打印log可忽略,原因是要验证的app未安装到手机上,安装了便不会报错。
3、如何查看app的URL Schemes?
这个取决于这个APP有没有设置URL Scheme,如果没有设置,肯定找不到。
步骤如下:
1).在电脑上使用iTunes下载那个app
2).下载完后,在itunes里点击这个app,选择->Show in Finder,看见的是一个.ipa文件
3).将文件名的后缀.ipa改成.zip然后解压
4).打开解压后的文件,找到Payload文件夹并打开,里面只有一个文件
5).右击这个文件,选择-->显示包内容
6).这时候会有很多文件,包括图片什么的,在这个文件夹中搜索,找到info.plist文件并打开
7).在plist文件中搜索CFBundleURLSchemes,会找到URL Schemes.(可能会存在多个URL Scheme,因为这里包括当前app的URL Scheme和要跳转到app的URL Scheme,可以根据URL identifier区分)
上一篇: pandas教程之Series创建和索引
下一篇: JSP上传图片并自动生成缩略图