app互相跳转在ios9.0之后主要是以下方法:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;
1.首先创建两个项目,分别是YiTwoDemo和YiNewDemo
2.分别在两个项目中添加URL Types,LSApplicationQueriesSchemes数组,把允许跳转的URL Schemes添加到这个数组中。
如果是ios9.0之前就不用配置LSApplicationQueriesSchemes;但是呢,在iOS9.0之后需要添加白名单,否则app 会跳转失败。
2.下面说下代码吧。
以YiNewDemo项目为跳转传参的app:
//开始给另一个 app传递的数据
// NSString *ourPath = [NSString stringWithFormat:@"YYTwoDemoSchems://写你想要带的参数"];
NSURL *ourUrl = [NSURL URLWithString:@"YYNewDemoSchems://"];
if ([[UIApplication sharedApplication] canOpenURL:ourUrl]) {
//能打开此链接
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.image = [UIImage imageNamed:@"slider.png"];
pasteboard.string = @"新的app来啦";
pasteboard.URL = [NSURL URLWithString:@"http://www.baidu.com"];
NSDictionary *options = @{UIApplicationOpenURLOptionsSourceApplicationKey:@YES};
if (@available(iOS 10.0, *)) {
// [[UIApplication sharedApplication] openURL:ourUrl options:options completionHandler:nil];
[[UIApplication sharedApplication] openURL:ourUrl options:options completionHandler:^(BOOL success) {
if (success) {
NSLog(@"跳转成功");
}
}];
} else {
// Fallback on earlier versions
[[UIApplication sharedApplication] openURL:ourUrl];
}
}else{
NSLog(@"can not open");
}
以YiTwoDemo为接受参数的app:
iOS9.0以后:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
NSLog(@" 当前的URL === %@ %@ %@ ", [url absoluteString], [url scheme]);
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSLog(@"传递过来的数据 ===== %@ %@", pasteboard.string, pasteboard.URL);
return YES;
}
iOS9.0之前:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(nonnull id)annotation{
NSLog(@" 当前的URL === %@ %@ %@ ", [url absoluteString], [url scheme], [url query]);
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSLog(@"传递过来的数据 ===== %@", pasteboard.string);
return YES;
}
3.最后,运行真机,实现跳转和传参。要想两个app之间互相跳转,每个app都配置一下就好啦。