对于我正在开发的应用程序,我们开发了基于HTML的文件格式,因此,即使没有我们的应用程序的用户也可以使用网络浏览器预览文档。

但是,对于确实拥有该应用程序的用户,我们希望使用它来打开这些文件。我们决定使用'.shtml'扩展名,该扩展名是大多数操作系统默认情况下由浏览器打开的,并未得到广泛使用。

现在,为了使MacOS理解我们的.shtml文件与常规.html文件不同,我们应该遇到麻烦了,应该使用我们的应用程序将其打开。问题是MacOS已经将.shtml文件注册为“public.html”。即使我使用UTTypeIdentifier“com.example.shtml”和UTTypeTagSpecification的public.filename-extension'shtml'定义了UTI,系统也始终将.shtml文件检测为'public.html'而不是'com.example.shtml' ,即使我将UTTypeConformsTo设置为'public.html'...

至少可以说,关于OS用于检测系统定义的UTI的启发式技术的文档很稀少,因此我找不到如何更改我的文件以使其不被检测为public.html。欢迎任何帮助或指向正确方向的指点。谢谢!

最佳答案

文件关联基于MIME类型(UTI定义)工作。
希望这些链接对您有所帮助
https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html
https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_declare/understand_utis_declare.html

关于macos - 覆盖系统定义的UTI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45921553/

10-10 08:19