iOS应用程序检索其URL方案的最佳方法是什么?

时间:2018-11-11 23:44:46

标签: ios

如果您的应用程序具有不同的目标,并具有对应的不同URL方案(例如blackbox://metablackbox-alpha://meta),则您可能会发现自己想在运行时动态查找当前应用程序的方案。你该怎么做?

以下内容有效:

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLSchemes"]

1 个答案:

答案 0 :(得分:3)

URL schemes数组实际上存储在 URL Types 数组下。假设您只有一种URL类型,并且列出的第一个方案是您要遵循的方案:

Objective-C

NSArray *urlTypes = [NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleURLTypes"];
NSArray *urlSchemes = [urlTypes firstObject][@"CFBundleURLSchemes"];
NSString *urlScheme = [urlSchemes firstObject];

迅速

let urlTypes = NSBundle.mainBundle.object(forInfoDictionaryKey: "CFBundleURLTypes") as! [[String:Any]]
let urlSchemes = urlTypes.first?["CFBundleURLSchemes"]! as! [String]
let urlScheme2 = urlSchemes.first