应用之间跳转进行传值
2017-06-01 本文已影响36人
CharlesAn
项目的新需求是两个应用之间进行跳转,并进行传值。ios9以后苹果官方引入了白名单的概念,即应用 A跳转到应用B,我们必须在应用B的url schmes加入的应用A的白名单才能完成授权跳转
1.设置应用A的url schemes
这里写图片描述
2.设置应用B的url schemes
这里写图片描述
3.在应用A的plist文件中,添加应用B的url schemes到A的白名单中LSApplicationQueriesSchemes
这里写图片描述
4.进行跳转操作
//toolBody为应用B的url schemes,后面可以拼接你要传给应用B的数据
NSURL *url = [NSURL URLWithString:@"toolBody://"];
//NSURL *url = [NSURL URLWithString:@"toolBody://friend"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
5.在应用B中拿到应用A传递的数据
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
//将url转为字符串
NSString * urlString = url.absoluteString;
//判断是通过什么跳转过来的
if ([urlString containsString:@"friend"]) {
//在这进行数据的操作
}
return YES;
}