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

标签 ios

如果您的应用有不同的目标和相应的不同 URL 方案(例如 blackbox://metablackbox-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/

相关文章:

iphone - 如何在不造成内存泄漏的情况下清除自定义对象的 NSMutableArray?

ios - 下拉刷新时 UITableview 出错,所有数据重复出现。任何人都可以帮助使用 Swift3 , Xcode8

ios - 为 UITableView 的不同部分设置按钮标签

iphone - 应用大小增加

ios - playerID 在 IOS 8 中被弃用 : use player

ios - NSLocalisedString 在显示键和翻译文本之间切换

ios - 如何锁定自定义UView的设计尺寸

ios - 向 UIScrollview 添加/删除 UIView 时出现延迟的原因是什么?

ios - 以相反的顺序填充 UICollectionView

ios - 我需要以编程方式通过iPhone在智能电视上播放视频