程序A跳转到程序B
1. 打开程序B的info.plist文件添加URL types 展开Item0 下面的identifier 修改URL Scheme 为 ELearningApp (这个是跳转所需要的key)
2. 设置A的白名单
在info.plist中添加LSApplicationQueriesSchemes的数组,其中有含有一个string类型的数据,即为你要跳转的另外一个B的url,我们要从A跳转到B,我们把B的url设置为ELearningApp,所以这里程序A要写入B的url-----“ELearningAppr”
程序A中按钮事件的跳转代码
- (void)buttonTojump:(UIButton *)btn
{
NSURL *app_A = [NSURL URLWithString:@"ELearningApp://parameters"];//ELearningApp为目标App的key,parameters 需要传递的一些参数
if ([[UIApplication sharedApplication] canOpenURL:app_A]) {
NSLog(@"canOpenURL");
[[UIApplication sharedApplication] openURL:app_A];
}else{
NSLog(@"应用程序未安装");
}
}
程序A中按钮事件跳转Appstore [将 https:// 替换为 itms:// 或者 itms-apps://:]
- (void)buttonTojump:(UIButton *)btn
{
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"itms://itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8"]];
// [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"itunes.apple.com/cn/app/bai-du-wen-kuhd/id483064532?mt=8"]];
}
程序B中Appdelegate的跳转代码
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (!url) {
return NO;
}else{
if ([[url scheme] isEqualToString:@"ELearningApp"]) {
DLog(@"从%@跳转过来的 - %@",sourceApplication,[url resourceSpecifier]);
NSString *str = [[[url resourceSpecifier]componentsSeparatedByString:@"//"]objectAtIndex:1
];
DLog(@"传递过来的参数 = %@",str);
[UserDefaultsUtils saveValue:str forKey:@"parameter"];
_isEducation = YES;
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
//勾选自动登录
UIViewController *startDao = [storyBoard instantiateViewControllerWithIdentifier:@"AutoLoginViewController"];
self.window.rootViewController = startDao;
return YES;
}else{
return NO;
}
}
}