У меня есть приложение для iPad с пользовательским типом файла, объявленным через UTI и CFBundleDocumentTypes. Есть ли способ запретить приложениям, таким как Mail и Dropbox, отображать предварительный просмотр файла, но при этом разрешить параметр «Открыть в ...» для запуска моего приложения? Я установил для UITypeConformsTo и UTTypeTagSpecification пользовательские значения в Info-plist приложения, но другие приложения все еще просматривают файлы с пользовательским расширением, созданным моим приложением. Я думал, что возможность предварительного просмотра зависит от значения в UTTypeTagSpecification (т.е. mime-типа), но, видимо, это не так. Спасибо.
Предотвращение предварительного просмотра пользовательских типов файлов UTI на iPad
Ответы (2)
Единственное решение, которое я нашел, это сжать файл (например, ZIP). Это не позволит приложениям iPad отображать содержимое. Вам по-прежнему нужно быть осторожным при объявлении пользовательских типов документов. В противном случае приложение все еще может попытаться выполнить предварительный просмотр, даже если оно сжато, и в конечном итоге отобразить тарабарщину.
Info.plist каждого генератора Quick Look определяет типы 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% уникален.
Не позволяйте ему что-либо наследовать, иначе какой-нибудь генератор может решить, что хочет попытаться открыть его.