objective-c – 应用程序理解的内容类型

objective-c – 应用程序理解的内容类型,第1张

概述给定应用程序路径(或应用程序的NSBundle等),有没有办法轻松/有效地确定应用程序可以打开哪些内容类型? 我最初的尝试是读取应用程序的Info.plist文件并提取kUTExportedTypeDeclarationsKey键下列出的内容类型.但是,这种方法存在一些缺陷,我无法解决这些问题. >并非所有应用程序都使用此密钥.例如,BBEdit没有,而是列出了一大堆公认的文件扩展名. > UTI 给定应用程序路径(或应用程序的NSBundle等),有没有办法轻松/有效地确定应用程序可以打开哪些内容类型?

我最初的尝试是读取应用程序的Info.pList文件并提取kUTExportedTypeDeclarationsKey键下列出的内容类型.但是,这种方法存在一些缺陷,我无法解决这些问题.

>并非所有应用程序都使用此密钥.例如,Bbedit没有,而是列出了一大堆公认的文件扩展名.
> UTI区分大小写.例如,页面将com.apple.iWork.Pages.pages列为导出的内容类型,但是没有Pages文档实际上在其内容类型树中列出了该类型.文档使用com.apple.iwork.pages.pages,它由iWork quicklook生成器(位于/library/QuickLook/iWork.qlgenerator)定义.

知道有一些LaunchServices函数(LScopyApplicationURLsForURL(),LScopyApplicationForMIMEType()等),我可以得到可以打开文件(或文件类型)的应用程序,但我想做反过来. (也许我不得不求助于解析lsregister -dump的输出?)

或许更简单的方法来表达问题:给定一个应用程序,找到它可以打开的所有文件的最简单方法是什么?

有什么建议?

解决方法 看一下LaunchServices和提供的 LSCanRefAcceptItem() API. 总结

以上是内存溢出为你收集整理的objective-c – 应用程序理解的内容类型全部内容,希望文章能够帮你解决objective-c – 应用程序理解的内容类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存