IOS跳转到其他app

先说明需求:如果手机安装了app,就打开该app,否则跳转到Safari上。

X度到的很多资料基本上都是这样:

1.配置白名单

IOS跳转到其他app_第1张图片
image

2.代码


NSURL  *url = [NSURL URLWithString:@"weixin://"];

//mqq为要跳转的app的url

BOOL open = [[UIApplication sharedApplication] canOpenURL:url];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
      if (IOS10_OR_LATER) {

                [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {

                    NSLog(@"success = %d",success);

                }];

            }else{

                [[UIApplication sharedApplication] openURL:url];

            }

        }

        else {

            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.baidu.com/"]];

        }

代码是对的,但是如果你在工程面板处,通过Info这边的URL Type进行配置了(上面那张图),那么不管手机上有没有安装微信,canOpenUrl返回的值都是YES。只有这边不配置,canOpenUrl才能返回正确的值。这样才能实现手机安装了app,就打开该app,否则跳转到Safari上。当然白名单还是要配置的,在Info.plist中配置。在LSApplicationQueriesSchemes中添加一栏,string的值,为你要跳转的app的url scheme的值就可以(记得不要加上://)

IOS跳转到其他app_第2张图片
image.png

我这次自己项目中用到的url scheme
google Home : chromecast
Amazon Alexa : Alexa
IFTTT : IFTTT
顺便一些常见的url:https://www.zhihu.com/question/19907735
以及:https://www.jianshu.com/p/382d3697beac 这里面链接的那篇文章觉得帮助蛮大的

你可能感兴趣的:(IOS跳转到其他app)