2017-01-10 3 views
0

Wenn ich einen Anhang von iPhone oder iPad Mail-Anwendung öffnen, gibt es ein Popup, das die Datei an eine Anwendung von Drittanbietern übertragen kann.wie Sie einen benutzerdefinierten Eintrag in UIActivityViewController hinzufügen

Dieses iOS-Popup heißt UIActivityViewController.

Ich wand meine eigene iOS-Anwendung (geschrieben in swift) in diesem Popup hinzuzufügen, und ich weiß nicht, wie ...

Dank

+0

Hier ist ein [guide] (https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/) – Daniel

+0

Danke, aber ich weiß nicht, welche Erweiterung Typ in Bezug auf UIActivityViewController ist .. . – Bob5421

Antwort

1

ich zu tun glaube Sie über zwei getrennte Dinge fragen.

UIActivityViewController:

Hier ist mein Code in meiner Anwendung.

let vc = UIActivityViewController(activityItems: [shareImage], applicationActivities: []) 
vc.excludedActivityTypes = [ 
    UIActivityType.airDrop, 
    UIActivityType.assignToContact, 
    UIActivityType.addToReadingList, 
    //UIActivityType.copyToPasteboard, 
    //UIActivityType.mail, 
    //UIActivityType.message, 
    //UIActivityType.openInIBooks, 
    //UIActivityType.postToFacebook, 
    //UIActivityType.postToFlickr, 
    UIActivityType.postToTencentWeibo, 
    //UIActivityType.postToTwitter, 
    UIActivityType.postToVimeo, 
    UIActivityType.postToWeibo, 
    UIActivityType.print, 
    //UIActivityType.saveToCameraRoll 
] 
present(vc, 
     animated: true, 
     completion: nil) 
vc.popoverPresentationController?.sourceView = self.view 
vc.completionWithItemsHandler = {(activity, success, items, error) in 
} 

Achten Sie auf die excludedActiviyTypes Code. Meine App ist eine Bild-Effekt-App, also habe ich die Dinge auskommentiert, die ich im Popup haben möchte - Weibo, print, assignToContact, ReadingList, Vimeo und TencentWeibo. Hier ist die Sache - ich behielt die vollständige Liste der Aktivitäten für eine schnelle Referenz. (Ich habe es nie auf ADC gefunden und am Ende mit Code abgeschlossen.)

UIActivityType ist eine erweiterte Struktur, also wenn Sie die Route der Verwendung gehen wollen, so denke ich, dass Sie müssen (1) Unterklasse UIActivityViewController, (2) schreibe deine eigene Erweiterung in UIActivityType und (3) stelle irgendeinen/allen Code zur Verfügung, der benötigt wird, um einen Dienst zu benutzen, der nicht oben aufgelistet ist.

A Document Provider ist, was ich denke, dass Sie suchen. Entweder das oder Universal - sometimes called Deep - Linking. (Die Links sind zu Apple-Dokumentation für die Verwendung von jedem.)

Ich habe offensichtlich UIActivityiewController verwendet, aber hatte (noch) keine Notwendigkeit, diese beiden anderen.

Wenn Sie Fragen zum Einrichten eines UIActivityViewController haben, veröffentlichen Sie diese in den Kommentaren. Wenn jemand anders eine Möglichkeit hat, es auf irgendeine andere Weise zu "erweitern" als ich beschrieben habe, lass es mich wissen und ich werde diese Antwort entfernen.

Verwandte Themen