APP跳转应用场景
比如现在普及的第三方登录分享地图导航,都需要跳转到指定的APP;
- 原理:通过设置跳转到应用B的URL Schemes(自定义的协议头),应用B将其自身“绑定”到一个自定义URL Schemes上,就可以从应用A中利用应用B的URL Schemes启动应用B了。
那么问题来了,那么我们如何实现应用间的相互跳转呢?
应用A跳转到应用B
-
选择项目App-B -> TARGETS -> Info -> URL Types -> URL Schemes,设置App-B的URL Schemes 为xxxxxx
F43E1A7F-CBD9-4E3E-B156-4CAE700D3FAC.png -
选择项目App-A 中设置白名单
这里的白名单和第三方分享登录一样的 设置白名单踩可以跳转 不然会报错
F43E1A7F-CBD9-4E3E-B156-4CAE700D3FAC.png
代码事先块
- (void)awakeOtherApp
{
NSURL *url = [NSURL URLWithString:@"xxxxxx://"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
else{
NSLog(@"没有安装应用");
}
}
跳转监听
跳转的应用Test的AppDelegate监听其代理方法
9.0后用这个方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
NSLog(@"url:%@",url.absoluteString);
NSLog(@"host:%@",url.host);
if ([url.host isEqualToString:@"test"])
{
NSLog(@"进入测试界面");
}
return YES;
}
9.0以前用下面的方法
application:openURL:options: