实现两个APP之间的跳转
2016-08-31 本文已影响2734人
goodthing
这是面试中一般会问的基础知识,也是平日里我们使用一些第三方:QQ/QQ空间/支付宝/微信SDK 的相关能力(分享、收藏、支付、登录等)时必须要了解的.今日里就亲手单建了两个 app 实现了下这个功能.记录如下:
首先需要明白的是:iOS 9之后,限制了http协议的访问,这里我以 appA 和 appBB 两个APP.
现在我以 appA 向 appB跳转为例 首先需要在appA中的“Info.plist”中将要使用的URL Schemes列为白名单.有以下两种方法都可以实现
![](https://img.haomeiwen.com/i2279162/a0622477d6962e1e.png)
![](https://img.haomeiwen.com/i2279162/9f0d48b2cc5e4238.png)
接着需要在相应的 viewController.m 文件中相应的跳转方法中实现以下方法:
NSURL *url = [NSURL URLWithString:@"appBB:"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}else{
NSLog(@"error");
}
![](https://img.haomeiwen.com/i2279162/34160407e4d0268c.png)
接下来我们来到 appB 中同样的设置URL Schemes
![](https://img.haomeiwen.com/i2279162/52c19bb1d582085d.png)
然后在 appB的appleDelegate.m 中添加以下方法:这个方法是接受从 appA 中传递过来的数据
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
NSLog(@"_____%@", url);
NSLog(@"+++++%@", sourceApplication);
return YES;
}
![](https://img.haomeiwen.com/i2279162/2179b8c8f41f215e.png)
现在几乎就可以实现跳转了.但是.如果还是不能跳转,再到 appA 中的 app.list 中添加LSApplicationQueriesSchemes,并将其改为数组Array.同是再添加一个 item0.添加 value 为 appBB(将要跳转的 app 的).
![](https://img.haomeiwen.com/i2279162/c92c2540f2275042.png)
这时候就完美的执行完毕.如若有不妥或疑问之处欢迎留言交流: