Eigenen Document-Type integrieren in iOS App?

silentx

Aktives Mitglied
Thread Starter
Dabei seit
30.08.2011
Beiträge
375
Reaktionspunkte
16
Hallo mein problem ich habe ein eigenen Typ *.ulk gemacht welches eigentlich ein XML ist. Nun zum Problem, folgendes funktioniert nicht, weiss aber nicht warum?
Code:
	<key>CFBundleDocumentTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeIconFiles</key>
			<array/>
			<key>CFBundleTypeName</key>
			<string>ULK</string>
			<key>LSItemContentTypes</key>
			<array>
				<string>public.xml</string>
			</array>
		</dict>
		<dict>
			<key>CFBundleTypeIconFiles</key>
			<array/>
			<key>CFBundleTypeName</key>
			<string>CSV</string>
			<key>LSItemContentTypes</key>
			<array>
				<string>public.comma-separated-values-text</string>
			</array>
		</dict>
	</array>

PS: Der CSV teil funktioniert einwandfrei...
 
Konnte das Problem Grundsätzlich lösen, doch gibt es auch eine Möglichkeit, dass beim Mail-Empfang direkt die App ausgewählt werden kann, ohne voransicht des Inhalts?

Noch Teil von meiner Lösung:
Code:
<key>CFBundleDocumentTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeName</key>
			<string>ULK</string>
			<key>LSHandlerRank</key>
			<string>Owner</string>
			<key>CFBundleTypeIconFiles</key>
			<array/>
            <key>LSItemContentTypes</key>
            <array>
                <string>ch.firma.appname.ulk</string>
            </array>
	</dict>
...
    <key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.xml</string>
            </array>
            <key>UTTypeDescription</key>
            <string>urLekaFile</string>
            <key>UTTypeIdentifier</key>
            <string>ch.firma.appname.ulk</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <string>ulk</string>
                <key>public.mime-type</key>
                <string>application/xml</string>
            </dict>
        </dict>
    </array>
 
Kurze Verständnis-Rückfrage: "Grundsätzlich gelöst" bedeutet, dass seit Einfügen des UTExportedTypeDeclarations-Schlüssels in der plist die iOS Mail-App deine App öffnet und den Anhang übergibt, wenn du in der Mail den Anhang antippst? (wir hatten das Thema im März schonmal andiskutiert, aber nicht zu Ende gebracht ...)

Und jetzt möchtetst du, dass wenn eine Mal mit entsprechendem Anhang eintrifft, deine App direkt geöffnt wird, ohne dass man Mail App öffnen muss? Dazu müsste man wohl in Mail.app eine Regel hinterlegen (geht nicht, oder?) oder die eigene App (oder eine eigene Überwachungs-App) im Hintergrund laufen lassen und auf Mail-Eingang lauschen und immer wenn eine Mail den richtigen Anhang hat, reagieren.
Schau mal hier: http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-tasks/
 
Folgenden-Teil habe ich angepasst, dann klicke ich im Mail auf den Anhang und dann kann ich meine App auswählen (keine Voransicht mehr)
Code:
// Alt
<string>public.xml</string>

// Neu
<string>public.data</string>
 
  • Gefällt mir
Reaktionen: ruerueka
Zum ursprünglichen Problem:
https://developer.apple.com/library...erstand_utis_intro/understand_utis_intro.html

Dazu müsste man wohl in Mail.app eine Regel hinterlegen (geht nicht, oder?) oder die eigene App (oder eine eigene Überwachungs-App) im Hintergrund laufen lassen und auf Mail-Eingang lauschen und immer wenn eine Mail den richtigen Anhang hat, reagieren.
Schau mal hier: http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-tasks/

Das wird nicht funktionieren, die Apps sind ja in einer Sandbox. Auch wenn sie im Background Mode sind. Ausser du implementierst damit nochmals einen separaten Mailclient, aber da wird der App Store Reviewer keine Freude dran haben.
 
  • Gefällt mir
Reaktionen: ruerueka
Zurück
Oben Unten