美文网首页iOS 深度好文
iOS两个应用之间的跳转

iOS两个应用之间的跳转

作者: 考槃在涧 | 来源:发表于2018-01-17 13:58 被阅读273次

iOS两个独立的App之间的跳转实现:

URL

一个完整的URL组成包括:协议类型、服务地址、资源路径、请求参数,如果不是通过第三方平台的SDK来进行应用间的跳转,就需要开发者自己在链接中拼接对应需要传递的参数。一个NSURL封装的一个完整地址包括:协议、域名、路径、参数。

跳转原理

两个独立的App,从一个App跳转打开另外一个App,涉及到的是这两个App之间的通信交互功能,苹果有个一专门的管理类UIApplication,这个类其实就代表应用程序。在UIApplication类有一个方法:

- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");

这个方法是通过应用程序打开一个资源路径。比如一些我们经常用到的打电话、发短信、发邮件等等都会用到这个方法。

一个App能打开另外一个App的必然条件就是:另外一个App必须配置一个scheme协议,这样应用才能根据协议找到需要打开的应用。

两个应用之间的跳转

创建两个测试应用:OpenURLFirst和OpenURLSecond。我们实现通过URL从OpenURLFirst跳转到OpenURLSecond的某个页面并传递信息。

首先OpenURLFirst如果能跳转到OpenURLSecond,要在被跳转的应用配置一个scheme协议,然后随便命名一个名字,这里我命名为zcNightelf(貌似不区分大小写)。

配置URL Schemes(使用info.plist文件) 第二种方法

配置完成后运行,可以直接在Safari中输入zcnightelf:// 来打开应用。

在OpenURLFirst中使用如下代码进行跳转:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"zcNightelf://"]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"zcNightelf://"] options:nil completionHandler:nil];
    }

如果需要回跳至第一个应用,也需要在第一个应用配置scheme,然后在第二个应用中调用跳转的代码。方法相同。

如果需要跳转到第二个应用的某个页面,需要设置跳转的URL。例如,需要跳转到第二个应用的第一个页面,url可以改为zcnightelf://one。然后在第二个应用的AppDelegate.m中,实现如下代码进行判断跳转至某个页面:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
    // 通过url的host判断需要跳转的页面进行处理
    if ([url.host isEqualToString:@"one"]) {

    }
    if ([url.host isEqualToString:@"two"]) {
 
    }
    return YES;
}

附上Demo

相关文章

  • 应用之间的跳转和数据传递

    iOS开发拓展篇—应用之间的跳转和数据传递 IOS APP之间跳转通讯 应用之间调用 UIApplication类...

  • OpenUrl

    iOS-使用URL Schemes,进行应用之间跳转iOS - JLRoutes路由跳转官方文档JLRoutes ...

  • 应用间跳转、通信

    应用间跳转 •app应用的跳转的原理 •如何实现两个app应用之间的跳转 •如何实现两个app之间跳转到指定的页面...

  • 应用之间跳转进行传值

    项目的新需求是两个应用之间进行跳转,并进行传值。ios9以后苹果官方引入了白名单的概念,即应用 A跳转到应用B,我...

  • 不同应用间的跳转

    mark: iOS中scheme详解 iOS-使用URL Schemes,进行应用之间跳转 iOS 设置URL S...

  • iOS应用跳转到appstore评分

    iOS应用跳转到appstore评分 标签(空格分隔): IOS 跳转到应用评价页 跳转到应用详情页 appid是...

  • iOS两个应用之间的跳转

    iOS两个独立的App之间的跳转实现: URL 一个完整的URL组成包括:协议类型、服务地址、资源路径、请求参数,...

  • iOS应用内跳转到系统设置页面

    iOS应用内跳转到系统设置页面 iOS应用内跳转到系统设置页面

  • app跳转到QQ,微信,支付宝等之后是怎么返回来的

    相关app之间的跳转可以参考 iOS开发--一步步教你彻底学会『iOS应用间相互跳转』 ,写的挺详细的,这里就不用...

  • iOS应用之间跳转

    首先-----如果想要跳转到第三方应用,需要第三方给你提供URL Schemes,然后在info.plist文件中...

网友评论

    本文标题:iOS两个应用之间的跳转

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