最近在写的项目中涉及到了应用间的跳转实现,iOS实现跳转应用是通过 openURL:方法;
此时遇到多个应用跳转到同一个应用;根据不同的应用的应用则需要进行不同的操作,随后跳回到上一个应用。于是,此处就需要第一个应用跳转的过程中需要传递过来该应用的URL Schemes,为后续的回跳做准备,此时的当前应用的URL Schemes的获取就成了关键。
之前, 获取plist文件中的 version ,bundleId,displayName的方法同样适用于 URL Schemes;
右击 info.plist,选择 open as --> source code ( 以源码形式打开)即可看到如下内容
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
NSDictionary *bundleUrltypes = [infoDic objectForKey:@"CFBundleURLTypes"];
NSString *urlSchemes = [NSString stringWithFormat:@"%@",[bundleUrltypes objectForKey:@"CFBundleURLSchemes"]];
// 此时获取的URL Schemes 形式为 (\n (\n URL Schemes \n) \n)
if ([urlSchemes containsString:@"("] || [urlSchemes containsString:@")"] || [urlSchemes containsString:@"\n"] || [urlSchemes containsString:@" "]) {
urlSchemes = [urlSchemes stringByReplacingOccurrencesOfString:@" " withString:@""];
urlSchemes = [urlSchemes stringByReplacingOccurrencesOfString:@"\n" withString:@""];
urlSchemes = [urlSchemes stringByReplacingOccurrencesOfString:@"(" withString:@""];
urlSchemes = [urlSchemes stringByReplacingOccurrencesOfString:@")" withString:@""];
}
经过处理后得到想要的 URL Schemes;即可作为参数在跳转应用时 进行传递。