有時候在app中柬唯,我們需要跳轉(zhuǎn)到另一個app (一般都是我們開發(fā)的另一個app)认臊。
假設(shè)一個場景,從A跳轉(zhuǎn)到B
在A中锄奢,設(shè)置一個button點(diǎn)擊事件美尸,先不著急在方法中寫代碼。
在B中斟薇,我們先進(jìn)入info下面設(shè)置URL Schemes师坎,如下圖:
Paste_Image.png
然后在B中的appdelegate里,寫以下代碼:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[url scheme] isEqualToString:@"junjie"]) {//這里要和剛才在schemes里設(shè)置的一樣
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"]];
}
進(jìn)行判斷,如果手機(jī)上有B的app,就跳到B遏乔,沒有就跳網(wǎng)頁义矛,在這里是跳百度
當(dāng)然了,你會發(fā)現(xiàn)盟萨,還不行凉翻,還不能跳app,這里我們還需要在A中設(shè)置白名單捻激,如下圖
Paste_Image.png
好了制轰,這下就可以跳了。
push.gif
傳值:
@“junjie://dddd”后面dddd代表參數(shù)胞谭,可以不寫垃杖,可以寫成英文或者數(shù)字,漢字好像不行(我試過)丈屹,然后在B的appdelegate中寫入如下代碼:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"string == %@", [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
return YES;
}
這樣從A跳轉(zhuǎn)到B调俘,能夠?qū)⒁恍┬畔鬟f過去。
如果你喜歡的話旺垒,就點(diǎn)個贊吧~