实现两个APP之间的跳转

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

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

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



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

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

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

[[UIApplication sharedApplication] openURL:url];

}else{

NSLog(@"error");

}



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


 

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

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

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

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

return YES;

}


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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容