Связывание файлов на iOS — открытие текстового файла из Safari

Я хочу связать текстовый пользовательский тип файла с моим приложением на iOS.

Когда я открываю ссылку на файл, который находится за каким-то php-скриптом, Safari показывает опцию «открыть в» с моим приложением в нем, и это нормально.

Однако, когда я открываю ссылку, которая указывает непосредственно на мой файл (запуск веб-сервера для целей тестирования), Safari решает, что он может сам читать файл и отображает содержимое самостоятельно. Что определенно не нормально.

С другой стороны, если я заменю любой двоичный файл (zip, ...) и использую свое расширение, сопоставление файлов все равно будет работать.

Код в plist-info:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>320.png</string>
            <string>64.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>My File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.Company.Product.ext</string>
        </array>
    </dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
            <string>public.content</string>
            <string>public.text</string>
            <string>public.plain-text</string>
            <string>public.utf16-plain-text</string>
            <string>public.utf16-external-plain-text</string>
            <string>public.utf8-plain-text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>My File</string>
        <key>UTTypeIdentifier</key>
        <string>com.Company.Product.ext</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>ext</string>
            <key>public.mime-type</key>
            <string>application/octet-stream</string>
        </dict>
    </dict>
</array>

Мой вопрос: как убедить Safari НЕ открывать сам файл? Это вообще возможно? Должен ли я использовать какой-либо тип mime, отличный от «application/octet-stream»?


person simonescu    schedule 14.05.2012    source источник


Ответы (1)


Определите собственный тип MIME (например, application/x-my.custom.type) для ваших файлов, и пусть PHP или ваш веб-сервер обслуживают их. Это должно помочь.

person Leo Natan    schedule 15.05.2012
comment
Это сработало и для меня. Я также обнаружил, что установка расширения файла в UTI экспортируемого типа была необходимой и достаточной, в то время как установка типа MIME не была ни тем, ни другим. - person Justin; 08.12.2013