2016-04-04 14 views
0

Schon eine Weile seit ich hatte mit AddressBook Framework.UIActivity für die Weitergabe von vCard

Ich frage mich, ob es einen Weg gibt, etwas „In den Addressbook“ Funktionalität kostenlos zu bekommen, wenn UIActivityViewController.activityItems auf eine vCard mit so etwas wie Einstellung:

let vCardString = [ 
     "BEGIN:VCARD", 
     "VERSION:3.0", 
     "N:Gump;Forrest", 
     "FN:Forrest Gump", 
     "ORG:Bubba Gump Shrimp Co.", 
     "TEL;TYPE=WORK,VOICE:(111) 555-1212", 
     "END:VCARD" 
     ].joinWithSeparator("\n") 

    let vCardData = vCardString.dataUsingEncoding(NSUTF8StringEncoding)! 
    let vCardActivity = NSItemProvider(item: vCardData, typeIdentifier: kUTTypeVCard as String) 

    // URL, test, 
    let activityViewController = UIActivityViewController(activityItems: [vCardActivity], applicationActivities: activities) 

I Runde gehen den langen Weg umgehen wollen, vor allem bei der Unterstützung von iOS 8 und 9: Mit Adressbuch und Kontakte Framework Ich würde eine Person erstellen, um Erlaubnis bitten und den View-Controller präsentieren.

Gibt es einen kürzeren Weg, wenn ich "nur" eine Möglichkeit bieten möchte, einen Kontakt über UIActivityViewController hinzuzufügen oder zu teilen?

bearbeiten: Der obige Code funktioniert nicht, spricht von keiner entsprechenden iOS Aktivität für die Kontakte des Systems gezeigt. Evernote nimmt auf und zeigt eine Aktivität mit korrektem Namen an. Beim Hinzufügen zu evernote wird die vCard in einer Notiz mit den korrekten Details angezeigt.

+0

@Hiren Dhamecha: Wenig über bearbeitet? Entschuldigung aber, warum hast du Code, der all diese Dinge hervorhebt? "Add to Addressbook" ist weder Code noch ein offizieller Begriff. "iOS 8 und 9" auch. Und iOS selbst in Backticks? Bezüglich der 3 Mods, die die Änderungen akzeptiert haben: ???. –

+1

Keine Mods beteiligt, es ist ein Community-Prozess. Dies waren Vorschläge, die von einem Benutzer vorgeschlagen wurden, * die von Benutzerkritikern * und nicht von Mods genehmigt wurden. Als Besitzer der Frage können Sie diese Bearbeitungen jederzeit ablehnen oder auf eine frühere Version zurücksetzen. // Und ja, "robo approved suggest edits" ist ein Problem, das SO anzugehen versucht. – Moritz

+0

@EricD Huch, ich meinte so etwas wie "Community-Mods", nur wegen ihres Privilegs. Aber danke für die Aufklärung über den ganzen Prozess, vor allem über die Möglichkeit, die Änderungen abzulehnen! Ich habe einen manuellen Rollback durchgeführt (auch Tippen). Ich stimme dem "Robo Approval" voll und ganz zu, die Bearbeitung/Genehmigung sollte nur erfolgen, wenn jemand mit den Fachbegriffen vertraut ist. –

Antwort

1

Sie können stattdessen versuchen, UIDocumentInteractionController zu verwenden. Mit so etwas wie

NSURL * url = [NSURL fileURLWithPath:"file://my.vcard"]; 
UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:url]; 
[controller presentOpenInMenuFromRect:CGRectMake(0, 0, 300, 300) inView:self.view animated:YES]; 

Dies würde Option auf "Kontakte kopieren"