欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS应用如何检测第三方app是否安装及跳转解决方案

程序员文章站 2022-03-31 09:29:51
最近在做支付宝支付,需要验证客户端是否安装支付宝钱包App,可通过Url Scheme框架实现。 1、以支付宝为例,验证是否安装支付宝开发步骤: step1. 验证手机端是否安...

最近在做支付宝支付,需要验证客户端是否安装支付宝钱包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配置

LSApplicationQueriesSchemes

alipay

CFBundleURLTypes

CFBundleURLName

alipay

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、如何查看appURL 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区分)