iOS开发之应用间跳转



转载来自:http://www.jianshu.com/p/6b746f95b568



在应用开发过程中,我们经常会涉及到一个应用和另外一个应用之间的通信。比如调用支付宝、分享至微信等操作,这些都涉及到两个应用之间的通信。

1、在介绍应用跳转之前,我们先了解一下相关概念:

a、协议:双方必须遵守的一种规范,只有遵守了共同的协议彼此之间才能进行通信。eg:网络协议(http协议)
b、URL: 资源的存放路径或者地址,在iOS中NSURL类是专门用于包装资源路径的类
c、URL的组成结构:
例如:http://blog.csdn.net/micheal_zj/article/details/52798428
                                                "http://":  协议类型
                                  "blog.csdn.net":   服务器的ip地址
"/micheal_zj/article/details/52798428":  资源的存放路径

打印结果如下:

2、跳转原理

在iOS中,我们知道有这样一个类UIApplication,它专门负责对应用进行管理。那么,我们如何实现在自己的应用中打开别的应用呢?下面这个方法即可实现这点:
- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion;
其实,我们平时如果有做过拨打电话和发送短信就会发现就是通过该方法实现的。短信和电话都是应用,实现发送短信和拨打电话其实就是实现了应用之间的通信跳转。
拨打电话:
               
上面我们可以看出,拨打电话:“tel://”,发送短信:“sms://”两个不同的协议,所以应用之间通信必须是各个应用都有自己独有的协议,当别的应用要和其通信时,用UIApplication对象打开包含相应协议的url。

3、跳转实现(应用间跳转)

现在创建两个项目,项目ApplicationJumpA和项目ApplicationJump。实现前面一个跳转至后面一个。我们需要事先的项目ApplicationJump中配置其独有的scheme(协议),这里我们将协议配置为"test1"如下图所示:


现在在项目ApplicationJumpA需要跳转操作的地方执行:
到这里已经基本实现了。注意:如果系统是iOS9以下那么已经成功了,但是如果是 iOS9以上的系统那么我们还需要在项目的plist文件中进行另外的配置。允许该项目打开的别的项目的协议,在plist文件中添加数组字段LSApplicationQueriesSchemes。如下图:

这样应用之间的跳转就实现了。

4、跳转实现(应用跳转至指定界面)

应用跳转至指定界面我们可以借助url中的post进行操作。依旧用上面两个项目举例,比如我们要跳转到项目ApplicationJump中的设置界面。那么我们需要在项目ApplicationJumpA中跳转的地方实现:

在项目ApplicationJump的AppDelegate中监听方法并实现推出设置界面的操作,如下图:

这样便实现了跳转到应用的指定界面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值