Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Dateiendung mit Mobilen Apps verknüpfen (https://www.delphipraxis.net/176618-dateiendung-mit-mobilen-apps-verknuepfen.html)

weisswe 17. Sep 2013 11:10

Dateiendung mit Mobilen Apps verknüpfen
 
Hallo!

Hat jemand eine Idee wie ich meine mobilen Apps mit einer eigenen Dateiendung verknüpfen kann (z.b. *.xyz)?
In Windows ist das ja kein Problem - Registry.
Aber wenn ich in iOS via email ein Attachment öffne, bekomme ich bei "bekannten" Dateiendungen einen Vorschlag der verknüpften Apps.

Phoenix 17. Sep 2013 17:25

AW: Dateiendung mit Mobilen Apps verknüpfen
 
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

weisswe 17. Sep 2013 21:10

AW: Dateiendung mit Mobilen Apps verknüpfen
 
:thumb:

Super, danke für die schnelle und kompetente Auskunft!
Werd es so schnell wie möglich implementieren und testen...

Bambini 1. Okt 2014 14:32

AW: Dateiendung mit Mobilen Apps verknüpfen
 
Zitat:

Zitat von Phoenix (Beitrag 1228836)
Hi,
das ist grundsätzlich kein Problem.

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

Gibt es eine Möglichkeit diese Einstellungen in Delphi zu pflegen?
Da die *.plist bei jedem Build neu erstellt wird, gehen manuelle Änderungen immer verloren.

In den Versionsinfos kann man wohl nur <key>...</key><string>...</string> Werte erfassen.

PS: Der Artikel von Chris kenne ich bereits.
http://delphihaven.wordpress.com/201...-on-osx-part2/
Ist jedoch recht umständlich, da man ab dann die ganz plist selbst pflegen muss.

Union 2. Okt 2014 11:52

AW: Dateiendung mit Mobilen Apps verknüpfen
 
Vielleicht hilft Dir das


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz