实现两个APP之间的跳转

       这是面试中一般会问的基础知识,也是平日里我们使用一些第三方:QQ/QQ空间/支付宝/微信SDK 的相关能力(分享、收藏、支付、登录等)时必须要了解的.今日里就亲手单建了两个 app 实现了下这个功能.记录如下:

首先需要明白的是:iOS 9之后,限制了http协议的访问,这里我以 appA  和 appBB 两个APP.

现在我以 appA 向 appB跳转为例 首先需要在appA中的“Info.plist”中将要使用的URL Schemes列为白名单.有以下两种方法都可以实现



实现两个APP之间的跳转_第1张图片
实现两个APP之间的跳转_第2张图片

接着需要在相应的 viewController.m 文件中相应的跳转方法中实现以下方法:

NSURL *url = [NSURL URLWithString:@"appBB:"];

if ([[UIApplication sharedApplication] canOpenURL:url]) {

[[UIApplication sharedApplication] openURL:url];

}else{

NSLog(@"error");

}



实现两个APP之间的跳转_第3张图片

接下来我们来到 appB 中同样的设置URL Schemes


 

实现两个APP之间的跳转_第4张图片

然后在 appB的appleDelegate.m 中添加以下方法:这个方法是接受从 appA 中传递过来的数据

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

NSLog(@"_____%@", url);

NSLog(@"+++++%@", sourceApplication);

return YES;

}


实现两个APP之间的跳转_第5张图片

现在几乎就可以实现跳转了.但是.如果还是不能跳转,再到 appA 中的 app.list 中添加LSApplicationQueriesSchemes,并将其改为数组Array.同是再添加一个 item0.添加 value 为 appBB(将要跳转的 app 的).


实现两个APP之间的跳转_第6张图片

这时候就完美的执行完毕.如若有不妥或疑问之处欢迎留言交流:

你可能感兴趣的:(实现两个APP之间的跳转)