美文网首页
iOS实现两个App之间跳转

iOS实现两个App之间跳转

作者: 爱笑的猫mi | 来源:发表于2019-07-24 14:46 被阅读0次

假设:App1要跳转到App2

App1:跳转方 App2:被跳转方

App1 可以吊起App2的条件是:

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

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

2588411-6d4a21569065a1f2.png

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

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string></string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>App2UniqueScheme</string>
        </array>
    </dict>
</array>

一个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,截图如下:


2588411-f1b374e3fc7d566d.png

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

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>App2UniqueScheme</string>
</array>

典型的例子就是App中接入微信分享SDK,实现分享功能:
想要调起微信进行朋友圈、好友分享,需要配置weixin、wechat白名单,这是微信自己定义的URL Schemes协议,方便其他App调起。
在App中需要添加从微信开放平台申请的AppId,这个AppId就作为该App在微信平台的唯一标识符,填写到URL Schemes下。这是为了使微信分享完毕后,从微信跳转回自己的App。

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

相关文章

网友评论

      本文标题:iOS实现两个App之间跳转

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