如果您的应用有不同的目标和相应的不同 URL 方案(例如 blackbox://meta
、blackbox-alpha://meta
),您可能会发现自己想要在运行时动态查找当前应用程序的方案。你怎么做到的?
以下不有效:
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLSchemes"]
最佳答案
URL schemes 数组实际上存储在URL Types 数组下。假设您只有一种 URL 类型,并且第一个列出的方案就是您所追求的方案:
objective-C
NSArray *urlTypes = [NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleURLTypes"];
NSArray *urlSchemes = [urlTypes firstObject][@"CFBundleURLSchemes"];
NSString *urlScheme = [urlSchemes firstObject];
swift
let urlTypes = NSBundle.mainBundle.object(forInfoDictionaryKey: "CFBundleURLTypes") as! [[String:Any]]
let urlSchemes = urlTypes.first?["CFBundleURLSchemes"]! as! [String]
let urlScheme2 = urlSchemes.first
关于ios - iOS 应用程序检索其 URL 方案的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53254385/