iOS 实现两个APP之间跳转

假设:App1要跳转到App2

App1:跳转方 App2:被跳转方

一个App2可以被其他App1调起的条件就是:

> 设备上安装了该App2
> 该App2注册了自己的URL Scheme协议(唯一标识)

App2以Property List方式打开info.plist,截图如下:


iOS 实现两个APP之间跳转_第1张图片
添加URL Schemes.png

App2以Source Code方式打开info.plist,添加URL Schemes:App2UniqueScheme

CFBundleURLTypes

    
        CFBundleURLName
        
        CFBundleURLSchemes
        
            App2UniqueScheme
        
    

一个App1能够跳转到其他App2的条件就是:

> 设备上安装了该App1
> 该App1添加了被跳转方App2的Scheme白名单
> 该App1中添加了调起代码
    
- (void)jumpToAnotherApp {
    NSURL *url = [NSURL URLWithString:@"App2UniqueScheme
://"];
    BOOL isCanOpen = [[UIApplication sharedApplication] canOpenURL:url];
    if (isCanOpen) {
        #ifdef NSFoundationVersionNumber_iOS_10_0
            [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
                
            }];
        #else
            [[UIApplication sharedApplication] openURL:url];
        #endif
        NSLog(@"App1打开App2");
    }else{
        NSLog(@"设备没有安装App2");
    }
}

App1以Property List方式打开info.plist,截图如下:


添加白名单.png

App1以Source Code方式打开info.plist,添加白名单:App2UniqueScheme

LSApplicationQueriesSchemes

    App2UniqueScheme

典型的例子就是App中接入微信分享SDK,实现分享功能:

  • 想要调起微信进行朋友圈、好友分享,需要配置weixin、wechat白名单,这是微信自己定义的URL Schemes协议,方便其他App调起。

  • 在App中需要添加从微信开放平台申请的AppId,这个AppId就作为该App在微信平台的唯一标识符,填写到URL Schemes下。这是为了使微信分享完毕后,从微信跳转回自己的App。

简单来说,配置URL Schemes协议是为了让其他App调起;配置白名单是为了跳转到其他App。微信分享就进行了从自己的App跳转到微信,再从微信跳转到自己的App这个过程。

你可能感兴趣的:(iOS 实现两个APP之间跳转)