AirDrop – Inhalte zwischen Apps teilen

Mit Apple’s AirDrop lassen sich beliebige Inhalte zwischen Apps unkompliziert teilen. Man tippt auf den Action Button  und wählt aus einer Liste von Kontakten aus, die sich mit ihrem Gerät in der Nähe befinden. Der Kontakt akzeptiert die Übertragung und wählt eine App, mit der der geteilte Inhalt geöffnet werden soll.

Folgende Geräte sind die Mindestvoraussetung um AirDrop nutzen zu können:

  • iPhone 5 oder neuer
  • iPad (4. Generation) oder neuer
  • iPad mini
  • iPod touch (5. Generation oder neuer)

WLAN und Bluetooth müssen aktiviert sein.

(https://support.apple.com/de-de/HT204144)

 

Wie konfiguriert man die eigene App für AirDrop?

Beim Teilen von Inhalten über AirDrop werden Dateien verschickt.

Die App definiert Document Types und UTIs (Uniform Type Identifiers) für das Bereitstellen (Export) und für das Entgegennehmen (Import) von Inhalten. Das kann in Xcode für ein Build Target in der Info Sektion eingestellt werden:

Bildschirmfoto 2015-10-28 um 17.48.22

Bildschirmfoto 2015-10-28 um 17.46.52

Bildschirmfoto 2015-10-28 um 17.47.26

Bildschirmfoto 2015-10-28 um 17.47.41

Wenn die App spezielle Inhalte bereitstellt, deren Format nur die App selbst oder eine spezielle andere App kennt, dann sollte man einen eigenen eindeutigen Inhaltstyp definieren. Typischerweise wird für den Identifier das reverse DNS Format benutzt: „com.copmanyName.appName.documentType“. Für den public.mime-type empfiehlt sich „application/appName“ oder „application/dokumentName“. Die Dateiendung ist frei wählbar und kann auch aus deutlich mehr als 3 Zeichen bestehen.

In diesem Beispiel wird der Export und Import von Vokabel-Paketen für eine Vokabeltrainer-App definiert.

Für bereits existierende bzw. bekannte Arten von Inhalten wie zum Beispiel Bilder oder Videos sollte man auf die System-Declared Uniform Type Identifiers zurückgreifen: https://developer.apple.com/library/ios/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html

(Es kommt oft vor dass Xcode immer wieder abstürtzt, wenn man in der Info Sektion einen bestimmten Eintrag bearbeitet. In diesem Fall kann man im Project Navigator die Info.plist per Rechtsklick als „Source Code“ öffnen und die Einträge in XML bearbeiten.)

 

Als nächstes muss man in der App einen Button festlegen (zum Beispiel den Action Button  ), der den UIActivityViewController öffnet, um die Inhalte bereitzustellen:

Bildschirmfoto 2015-10-29 um 17.54.38

Dieser Code benutzt das ab iOS 8 neu eingeführte UIPopoverPresentationController System, das auf iPhone und iPad einheitlich funktioniert.

Hier wird ein ein Objekt der Klasse Package aus dem Beispielprojekt geteilt. Es wird vorher als Datei abgespeichert und repräsentiert ein Vokabel-Paket.

Wenn der Benutzer auf den Button tappt, erscheint das Activity Popup:

IMG_0097

Für das Activity-Item, das an den UIActivityViewController übergeben wird, sollte man eine eigene Klasse (hier: VokPackageActivityItemProvider) anlegen:

Bildschirmfoto 2015-10-29 um 18.01.02

Sobald der Benutzer einen AirDrop Kontakt ausgewählt hat, wird in einem Background-Thread die item() Methode aufgerufen. In diesem Beispiel wird einfach nur die URL zu der bereits existierenden Datei zurückgegeben. Man kann auch die Datei innerhalb der item() Methode generieren und dann ein NSURL Objekt mit dem Pfad auf die Datei zurückgeben.

Nachdem die Datei versendet wurde, fragt das Gerät des ausgewählten Kontaktes in welcher App die Datei geöffnet werden soll:

IMG_0099

Um den bereitgestellten Inhalt mit einer App entgegenzunehmen, wird im application delegate der URL handler definiert:

Bildschirmfoto 2015-10-29 um 18.40.36

Zunächst wird geprüft, ob die Datei die passende Dateiendung hat (hier: .vok). Die Datei befindet sich erst mal im Inbox Ordner mit eingeschränkten Zugriffsrechten. Man sollte die Datei gleich in den passenden Systemordner verschieben (Documents, Library, …).

In diesem Beispiel wird die Datei in Documents verschoben und steht ab diesem Zeitpunkt der App als Vokabelpaket bereit:

IMG_0100

Vokabeltrainer-Beispielprojekt Download:

Vok.zip

 

Bewerte diesen Beitrag
Please follow and like us:
Facebook
Facebook
YouTube
YouTube
0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

  Newsletter abonnieren (Jederzeit wieder abbestellbar)