項(xiàng)目的新需求是兩個(gè)應(yīng)用之間進(jìn)行跳轉(zhuǎn),并進(jìn)行傳值。ios9以后蘋果官方引入了白名單的概念,即應(yīng)用 A跳轉(zhuǎn)到應(yīng)用B,我們必須在應(yīng)用B的url schmes加入的應(yīng)用A的白名單才能完成授權(quán)跳轉(zhuǎn)
1.設(shè)置應(yīng)用A的url schemes
這里寫圖片描述
2.設(shè)置應(yīng)用B的url schemes
這里寫圖片描述
3.在應(yīng)用A的plist文件中,添加應(yīng)用B的url schemes到A的白名單中LSApplicationQueriesSchemes
這里寫圖片描述
4.進(jìn)行跳轉(zhuǎn)操作
//toolBody為應(yīng)用B的url schemes,后面可以拼接你要傳給應(yīng)用B的數(shù)據(jù)
NSURL *url = [NSURL URLWithString:@"toolBody://"];
//NSURL *url = [NSURL URLWithString:@"toolBody://friend"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
5.在應(yīng)用B中拿到應(yīng)用A傳遞的數(shù)據(jù)
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
//將url轉(zhuǎn)為字符串
NSString * urlString = url.absoluteString;
//判斷是通過什么跳轉(zhuǎn)過來的
if ([urlString containsString:@"friend"]) {
//在這進(jìn)行數(shù)據(jù)的操作
}
return YES;
}