iOS 实现两个APP之间跳转

热门标签

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

假设:App1要跳转到App2

App1:跳转方 App2:被跳转方

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

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

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

iOS 实现两个APP之间跳转
添加URL Schemes.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,截图如下:

iOS 实现两个APP之间跳转
添加白名单.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这个过程。

 

标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS 实现两个APP之间跳转》 发布于2019-09-27

分享到:
赞(0) 打赏

评论 抢沙发

2 + 8 =


iOS 实现两个APP之间跳转

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?