APP跳转到指定APP(传值)

有时候在app中,我们需要跳转到另一个app (一般都是我们开发的另一个app)。
假设一个场景,从A跳转到B
在A中,设置一个button点击事件,先不着急在方法中写代码。
在B中,我们先进入info下面设置URL Schemes,如下图:


APP跳转到指定APP(传值)_第1张图片
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,能够将一些信息传递过去。
如果你喜欢的话,就点个赞吧~

你可能感兴趣的:(APP跳转到指定APP(传值))