有的时候需要跳转到别的APP,这个时候就需要一些设置,
步骤如下:
一:设置UrlSchemes : 在需要跳转的APP中设置自己的UrlSchemes,方便跳转
二:如果调用canOpenURL: 需要在调用的APP中设置被调用APP的白名单,如下:
三:编写代码
#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,其实可以绕过这个判断,直接调用下面的方法进行跳转:
2、运行的时候有可能出现一下提示,请按照步骤设置即可:
附上Demo下载地址:Demo地址
参考链接:
http://blog.csdn.net/u011619283/article/details/53331597