我有一个iPad应用程序,它具有通过UTI和CFBundleDocumentTypes声明的自定义文件类型。有没有办法阻止像Mail和Dropbox这样的应用程序显示文件预览,同时仍然允许“打开在...”选项启动我的应用程序?我已将UITypeConformsTo和UTTypeTagSpecification设置为应用程序Info-plist中的自定义值,但其他应用程序仍然使用由我的应用程序创建的自定义扩展预览文件。我认为预览的能力取决于UTTypeTagSpecification(即MIME类型)中的值,但显然不是。谢谢。防止在iPad上预览自定义UTI文件类型
1
A
回答
0
我发现的唯一解决方案是压缩文件(例如ZIP)。这将阻止iPad应用程序显示内容。在声明自定义文档类型时,您仍然需要小心。否则,即使应用程序被压缩,应用程序仍可能尝试预览,并最终显示乱码。
0
每个Quick Look生成器的Info.plist定义了它可以处理的UTI类型。
例如:/System/Library/QuickLook/Text.qlgenerator/Contents/Info.plist是系统中默认“文本”生成器的Info.plist路径。
生成器的另外两个文件夹是/ Library/QuickLook和〜/ Library/QuickLook。
你应该会看到类似这样的一些线在靠近顶部:
<key>CFBundleTypeRole</key>
<string>QLGenerator</string>
<key>LSItemContentTypes</key>
<array>
<string>public.plain-text</string>
<string>public.rtf</string>
<string>com.apple.rtfd</string>
<string>org.oasis-open.opendocument.text</string>
<string>com.apple.property-list</string>
<string>public.xml</string>
</array>
各种应用程序的Info.plist文件中定义的文件扩展名属于哪个类型UTI。操作系统将使用文件扩展名来获取UTI。
您的自定义UTI /文件扩展名可能与现有定义冲突。这听起来像是你描述的问题的一个可能原因。
我建议您查看默认值(以及您安装的程序的导出UTI类型),并确保您的自定义UTI(文件扩展名也是!)确实是100%唯一的。
不要让它继承任何东西,或者某些生成器可能会决定它尝试打开它。
相关问题
- 1. 如何制作标识为自定义UTI类型的文件?
- 2. 防止在iPad上
- 3. 将UTI分配给文件类型
- 4. Facelet自定义组件 - 防止渲染
- 5. 自定义文件类型关联的Android上点击文件
- 6. 我们如何防止.exe类型文件在网站上传?
- 7. 导出UIDocument与自定义文件包UTI
- 8. 自定义文章类型
- 9. 自定义字体文件类型
- 10. 自定义文件类型和图标
- 11. Finder无法识别自定义UTI
- 12. Qt:定义自定义事件类型
- 13. 防止浏览器在iframe的文档中加载自定义框架集
- 14. 在自定义打印预览对话框中使用打印预览控件
- 15. 如何让插件导入UTI类型
- 16. 的facelet自定义组件 - 防止渲染UI:插入自定义组件
- 17. 防止Apache自动更改MIME类型
- 18. 自定义类型在V3
- 19. 自定义类型在C#
- 20. 使用Dropzonejs上传自定义文件类型
- 21. 自定义文件类型的MIME类型
- 22. 自定义文件类型缩略图或在Windows资源管理器中预览
- 23. 自定义文章类型类别
- 24. 如何防止执行打印预览
- 25. iOS文档/文件类型关联 - 通配符UTI?
- 26. 如何:自定义防止缓存?
- 27. Dropzone.js:无法点击自定义预览
- 28. Android自定义相机预览位图
- 29. 带自定义预览的WMD Markdown Editor
- 30. Dropzone JS的自定义预览模板