Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#2

AW: Dateiendung mit Mobilen Apps verknüpfen

  Alt 17. Sep 2013, 18:25
Hi,

das ist grundsätzlich kein Problem.

In Deiner Info.plist-Datei kannst Du Dateitypen mit dem key "CFBundleDocumentTypes" registrieren.

Beispiel:
Code:
<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>MyDocument-320.png</string>
            <string>MyDocument-64.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>Your custom file type</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.deinedomain.customtype.xyz</string>
        </array>
    </dict>
</array>

Unbekannt Dateitypen (wie hier com.deinedomain.customtyoe.xyz musst Du auch in der Info.plist-Datei mit dem Key "UTExportedTypeDeclarations" exportieren:

Beispiel:
Code:
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.plain-text</string>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Some custom file type description</string>
        <key>UTTypeIdentifier</key>
        <string>com.deinedomain.customtype.xyz</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>xyz</string>
            <key>public.mime-type</key>
            <string>mycustommimetype/x-xyz</string>
        </dict>
    </dict>
</array>
Damit wird Deine App als Handler für die Dateien registriert.
Wird dann eine Datei aus einem Attachment mit deiner App geöffnet gibt es zwei Möglichkeiten wie Du das mitbekommen kannst:

1.) Deine Anwendung läuft aktuell NICHT im Hintergrund:
Deine Anwendung wird gestartet und der application:didFinishLaunchingWithOptions-Callback wird aufgerufen mit launchOptions valueForKey: UIApplicationLaunchOptionsURLKey.

2.) Deine Anwendung läuft schon:
Dann wird der application: openURL-Callback aufgerufen.

In den beiden Callbacks kannst Du dann darauf reagieren und die Datei entsprechend öffnen.

Edit: Versehentlich reingerutscher Smiley entfernt
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org

Geändert von Phoenix (17. Sep 2013 um 18:28 Uhr)
  Mit Zitat antworten Zitat