iOS开发拓展篇—应用之间的跳转和数据传
说明:本文介绍app如何打开另一个app,并且传递数据。
一、简单说明
新建两个应用,分别为应用A和应用B.
实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用。
1.新建两个应用,分别为A和B.
![](http://images.cnitblog.com/blog/450136/201409/142354418874108.png?x-oss-process=image/resize,w_1400/format,webp)
![](http://images.cnitblog.com/blog/450136/201409/150002248248878.png?x-oss-process=image/resize,w_1400/format,webp)
2.设置应用B的url。
![](http://images.cnitblog.com/blog/450136/201409/150005160123679.png?x-oss-process=image/resize,w_1400/format,webp)
3.在应用A中编写打开app的代码
![](http://images.cnitblog.com/blog/450136/201409/150007446066083.png?x-oss-process=image/resize,w_1400/format,webp)
点击之后,会跳转到新的控制器。
注意:打开应用B的过程中,B有两种状态。
第一种状态:B并没有启动,那么会启动B。并调用下面的方法。
![](http://images.cnitblog.com/blog/450136/201409/150006209342745.png?x-oss-process=image/resize,w_1400/format,webp)
第二种状态:此时B已经启动了,但是在后台运行,这个时候不会调用该方法。
二:说明
如果一个应用被另外一个应用打开,那么会调用下面的代理方法,且在该方法中可以实现两个应用之间数据的传递。
![](http://images.cnitblog.com/blog/450136/201409/150022244969072.png?x-oss-process=image/resize,w_1400/format,webp)
代码说明:
![复制代码](http://common.cnblogs.com/images/copycode.gif?x-oss-process=image/resize,w_1400/format,webp)
1 #import "YYAppDelegate.h" 2 3 @implementation YYAppDelegate 4 5 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 6 { 7 NSLog(@"didFinishLaunchingWithOptions---B"); 8 return YES; 9 } 10 11 //当一个应用程序被其他程序打开的时候会调用这个方法,在该方法中可以实现两个应用程序间的数据局传递 12 -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 13 { 14 NSLog(@"%@",url); 15 NSLog(@"%@",sourceApplication); 16 return YES; 17 }
![复制代码](http://common.cnblogs.com/images/copycode.gif?x-oss-process=image/resize,w_1400/format,webp)