封面圖.jpeg
iOS的應(yīng)用間跳轉(zhuǎn),項(xiàng)目A內(nèi)點(diǎn)擊按鈕移怯,或者其他操作香璃,喚醒項(xiàng)目B,項(xiàng)目B做一定的響應(yīng)操作舟误。
一葡秒、配置信息
兩個(gè)應(yīng)用間通信,需要遵循同一個(gè)協(xié)議規(guī)范嵌溢,類似于微信第三方登錄眯牧,需要在Info.plist中添加白名單。
首先赖草,在項(xiàng)目B的
Info.plist
的URL types
中添加一組數(shù)據(jù)学少,如下圖所示
openURL
為雙方設(shè)定的共同遵循的協(xié)議名字,可以隨意設(shè)置秧骑,但不要和其他的重復(fù)版确,最好是項(xiàng)目A的名稱。
URL identifier
為項(xiàng)目A的Bundle identifier
乎折,可以在項(xiàng)目A的TARGET
里復(fù)制過來(lái)
項(xiàng)目B Info.plist配置.png
二绒疗、觸發(fā)跳轉(zhuǎn)操作
在項(xiàng)目A中需要實(shí)現(xiàn)跳轉(zhuǎn)的操作中,比如按鈕的點(diǎn)擊事件中骂澄,實(shí)現(xiàn)以下代碼
- (void)tapOpenURL{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"openURL://"] options:@{} completionHandler:^(BOOL success) {
// success to do
}];
}
@“openURL://"
中吓蘑,openURL
為項(xiàng)目B中配置的共同協(xié)議,可以在這個(gè)url后拼接想要傳遞的參數(shù)
三坟冲、url回調(diào)處理
以上完成磨镶,在項(xiàng)目B的AppDelegate
里實(shí)現(xiàn)應(yīng)用url的回調(diào)方法,
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
NSLog(@"=========%@========",url);
// 微信登錄
// return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
return YES;
}
在這里可以獲得從項(xiàng)目A中傳遞過來(lái)的url溃蔫,并取得參數(shù),然后就可以做相應(yīng)的各種處理了棋嘲。
//iOS10后酒唉,下面的方法被廢棄了,用上面的那個(gè)方法取代
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return YES;
}