如何从本地应用程序枚举 OS X 系统上已安装的浏览器。我想建立一些像挑剔但不同的东西(长话短说)。但是,我想枚举系统上所有已安装的浏览器。
在 Windows 上,我可以在默认程序注册表中查看已安装的浏览器,但是,我认为 OS X 上没有类似的概念。我是否必须手动搜索所有包及其 info.plist 文件?
最佳答案
使用 LSCopyAllHandlersForURLScheme(CFSTR("http"))
或 LSCopyAllRoleHandlersForContentType(CFSTR("public.html"), kLSRolesViewer)
,或两者的 set intersection 。
这两个函数返回包标识符;您可以使用 LSFindApplicationForInfo
通过捆绑标识符查找应用程序磁盘上的首选实例。
(不要忘记关注 the Core Foundation memory-management rules 。)
编辑:在对此答案的评论中,smorgan 建议使用 LSCopyAllHandlersForURLScheme(CFSTR("https"))
(即 http s )作为第一次调用的替代方法。这是一个很好的建议。
关于cocoa - 枚举 OS X 上已安装的浏览器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/931264/