美文网首页程序员iOS Developer
iOS APP之间的相互跳转

iOS APP之间的相互跳转

作者: MMD_ | 来源:发表于2017-12-13 15:24 被阅读41次
APP跳转应用场景

比如现在普及的第三方登录分享地图导航,都需要跳转到指定的APP;

  • 原理:通过设置跳转到应用B的URL Schemes(自定义的协议头),应用B将其自身“绑定”到一个自定义URL Schemes上,就可以从应用A中利用应用B的URL Schemes启动应用B了。

那么问题来了,那么我们如何实现应用间的相互跳转呢?

应用A跳转到应用B
  • 选择项目App-B -> TARGETS -> Info -> URL Types -> URL Schemes,设置App-B的URL Schemes 为xxxxxx


    F43E1A7F-CBD9-4E3E-B156-4CAE700D3FAC.png
  • 选择项目App-A 中设置白名单
    这里的白名单和第三方分享登录一样的 设置白名单踩可以跳转 不然会报错


    F43E1A7F-CBD9-4E3E-B156-4CAE700D3FAC.png

代码事先块

- (void)awakeOtherApp
{
    NSURL *url = [NSURL URLWithString:@"xxxxxx://"];
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }
    else{
        NSLog(@"没有安装应用");
    }
}
跳转监听

跳转的应用Test的AppDelegate监听其代理方法
9.0后用这个方法

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

NSLog(@"url:%@",url.absoluteString);
NSLog(@"host:%@",url.host);
if ([url.host isEqualToString:@"test"])
{
NSLog(@"进入测试界面");
}
return YES;
}

9.0以前用下面的方法

application:openURL:options:

相关文章

网友评论

    本文标题:iOS APP之间的相互跳转

    本文链接:https://www.haomeiwen.com/subject/tzoaixtx.html