判断iOS设备上是否安装某个应用以及应用跳转

有的时候需要跳转到别的APP,这个时候就需要一些设置,

步骤如下:

一:设置UrlSchemes : 在需要跳转的APP中设置自己的UrlSchemes,方便跳转

判断iOS设备上是否安装某个应用以及应用跳转_第1张图片
判断iOS设备上是否安装某个应用以及应用跳转_第2张图片

二:如果调用canOpenURL:  需要在调用的APP中设置被调用APP的白名单,如下:

判断iOS设备上是否安装某个应用以及应用跳转_第3张图片

三:编写代码

#pragma mark - 判断是否安装了APP

- (void)checkWhetherHasInstalledAppWithUrlSchemes:(NSString *)urlSchemes

{

NSURL *URL = [NSURL URLWithString:urlSchemes];

UIApplication *application = [UIApplication sharedApplication];

// 方式一 :

// 判断是否安装了APP

/*

if ([application canOpenURL:URL]) {

NSLog(@"已经安装,并且可以打开");

if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {

// iOS10及以上判断方式

[application openURL:URL options:@{}

completionHandler:^(BOOL success) {

NSLog(@"iOS10及以上Open %@: 是否成功%d",urlSchemes,success);

if (!success) {

// 没有成功

NSLog(@"iOS10 进入app失败");

}

}];

} else {

BOOL success = [application openURL:URL];

NSLog(@"Open %@: %d",urlSchemes,success);

if (!success) {

// 没有成功

NSLog(@"进入app失败");

}

}

}

else

{

NSLog(@"不能打开");

}

*/

// 方式二:

// 直接进入,不成功就弹出提示即可, 建议使用这种方式

if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {

// iOS10及以上判断方式

[application openURL:URL options:@{}

completionHandler:^(BOOL success) {

NSLog(@"iOS10及以上Open %@: 是否成功%d",urlSchemes,success);

if (!success) {

// 没有成功

NSLog(@"iOS10 进入app失败");

}

}];

} else {

BOOL success = [application openURL:URL];

NSLog(@"Open %@: %d",urlSchemes,success);

if (!success) {

// 没有成功

NSLog(@"进入app失败");

}

}

}


四:调用方法


[self checkWhetherHasInstalledAppWithUrlSchemes:@"tableview123://com.jd.tableView"];


五:注意事项

1、下面是判断是否可以打开URL,其实可以绕过这个判断,直接调用下面的方法进行跳转:

判断iOS设备上是否安装某个应用以及应用跳转_第4张图片

2、运行的时候有可能出现一下提示,请按照步骤设置即可:

判断iOS设备上是否安装某个应用以及应用跳转_第5张图片

附上Demo下载地址:Demo地址

参考链接:

http://blog.csdn.net/u011619283/article/details/53331597

你可能感兴趣的:(判断iOS设备上是否安装某个应用以及应用跳转)