Предотвращение предварительного просмотра пользовательских типов файлов UTI на iPad

У меня есть приложение для iPad с пользовательским типом файла, объявленным через UTI и CFBundleDocumentTypes. Есть ли способ запретить приложениям, таким как Mail и Dropbox, отображать предварительный просмотр файла, но при этом разрешить параметр «Открыть в ...» для запуска моего приложения? Я установил для UITypeConformsTo и UTTypeTagSpecification пользовательские значения в Info-plist приложения, но другие приложения все еще просматривают файлы с пользовательским расширением, созданным моим приложением. Я думал, что возможность предварительного просмотра зависит от значения в UTTypeTagSpecification (т.е. mime-типа), но, видимо, это не так. Спасибо.


person DenVog    schedule 29.08.2010    source источник


Ответы (2)


Единственное решение, которое я нашел, это сжать файл (например, ZIP). Это не позволит приложениям iPad отображать содержимое. Вам по-прежнему нужно быть осторожным при объявлении пользовательских типов документов. В противном случае приложение все еще может попытаться выполнить предварительный просмотр, даже если оно сжато, и в конечном итоге отобразить тарабарщину.

person DenVog    schedule 17.09.2010

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% уникален.

Не позволяйте ему что-либо наследовать, иначе какой-нибудь генератор может решить, что хочет попытаться открыть его.

person Brandon    schedule 31.12.2010