对于我正在开发的一个应用程序,我们开发了一种基于HTML的文件格式,这样即使没有我们的应用程序的用户也可以使用web浏览器预览文档。
但是,对于拥有该应用程序的用户,我们希望使用它来打开这些文件。我们决定使用'.shtml‘扩展,它在大多数操作系统上都是由浏览器默认打开的,并没有被广泛使用。
我们现在遇到了麻烦,让MacOS明白我们的.shtml文件不同于常规的.html文件,应该用我们的应用程序打开。问题是MacOS已经将.shtml文件注册为"public.html“。即使我使用UTTypeIdentifier“com.example.shtml”和UTTypeTagSpecification的public.html. files扩展名“shtml”定义了一个UTI,系统总是将.shtml文件检测为“public.html”而不是"com.example.shtml",即使我将UTTypeConformsTo设置为“public.html.html”...
至少可以说,关于操作系统用来检测系统定义的public.html的启发式方法的文档很少,所以我找不到如何将我的文件更改为不被检测为UTI。欢迎任何帮助,或对正确方向的指点。谢谢!
发布于 2017-09-18 18:42:12
文件关联基于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
发布于 2017-09-20 00:38:17
不幸的是,这是不可能的,因为macOS添加了SIP,这阻止了系统定义的UTI的任何修改,而不会在SIP停用的情况下重新启动。我的建议是将你的应用程序设置为public.html的默认应用程序,并将任何不符合你要求的文件重定向到默认浏览器。
https://stackoverflow.com/questions/45921553
复制相似问题