Как зарегистрировать пользовательский тип файла в iOS - PullRequest
15 голосов
/ 15 ноября 2010

В настоящее время я создаю приложение, в котором я хочу позволить пользователю создавать резервные копии своих файлов (plist + m4a). Я заархивировал файлы и изменил расширение на собственное (специально для моего приложения, скажем, «* .MyBackup»). Пользователь может затем экспортировать по электронной почте или с помощью общего доступа к файлам iTunes.

Я уже читал о CFBundleDocumentTypes, но на самом деле не понял, что мне с ними делать.

Часть, в которой я сейчас застрял, - это как связать мое расширение с моим приложением. Если пользователь отправляет электронное письмо с файлом "custom" -zip, он должен открыть его с помощью моего приложения.

Как мне это сделать и что такое "UTExportedTypeDeclarations"?

Ответы [ 2 ]

32 голосов
/ 15 ноября 2010

Я надеюсь, что все в порядке, если я добавлю эту часть своего info.plist в мои проекты без особых объяснений. Я думаю, это говорит само за себя.

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>Icon-iPad-doc320.png</string>
            <string>Icon-iPad-doc.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>MyAppName File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <!-- my app supports files with my custom extension (see UTExportedTypeDeclarations) -->
            <string>com.myurl.myapp.myextension</string>
            <!-- and csv files. -->
            <string>public.comma-separated-values-text</string>
        </array>
    </dict>
</array>



<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>MyAppName File</string>
        <key>UTTypeIdentifier</key>
        <string>com.myurl.myapp.myextension</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>myextension</string>
            <key>public.mime-type</key>
            <string>application/octet-stream</string>
        </dict>
    </dict>
</array>
2 голосов
/ 28 октября 2012

Проверьте /var/mobile/Library/Preferences/com.apple.LaunchServices.plist

...