有时候在app中,我们需要跳转到另一个app (一般都是我们开发的另一个app)。
假设一个场景,从A跳转到B
在A中,设置一个button点击事件,先不着急在方法中写代码。
在B中,我们先进入info下面设置URL Schemes,如下图:
Paste_Image.png
然后在B中的appdelegate里,写以下代码:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[url scheme] isEqualToString:@"junjie"]) {//这里要和刚才在schemes里设置的一样
NSLog(@"url == %@", url);
}
return YES;
}
好了,让我们再回到A,在刚才button的代理方法中写入以下代码
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"junjie://dddd"]];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
}
进行判断,如果手机上有B的app,就跳到B,没有就跳网页,在这里是跳百度
当然了,你会发现,还不行,还不能跳app,这里我们还需要在A中设置白名单,如下图
Paste_Image.png
好了,这下就可以跳了。
push.gif
传值:
@“junjie://dddd”后面dddd代表参数,可以不写,可以写成英文或者数字,汉字好像不行(我试过),然后在B的appdelegate中写入如下代码:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"string == %@", [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
return YES;
}
这样从A跳转到B,能够将一些信息传递过去。
如果你喜欢的话,就点个赞吧~