Eigenen Document-Type integrieren in iOS App?

silentx

Mitglied
Thread Starter
Mitglied seit
30.08.2011
Beiträge
375
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...
 

silentx

Mitglied
Thread Starter
Mitglied seit
30.08.2011
Beiträge
375
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>
 

ruerueka

Aktives Mitglied
Mitglied seit
04.04.2004
Beiträge
1.507
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/
 

silentx

Mitglied
Thread Starter
Mitglied seit
30.08.2011
Beiträge
375
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>
 

ProjectBuilder

Aktives Mitglied
Mitglied seit
22.06.2012
Beiträge
1.721
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.