如何从本地应用程序枚举 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/

10-13 04:08