L'utilisation de UIActivityViewController et UIActivityItemProvider de partager PDF

J'ai besoin de partager et d'ouvrir des fichiers différents sous iOS par exemple une image à iCloud ou un pdf à iBooks. Il y a plusieurs exemples autour du texte et des images, mais rien pour un peu d'autre...

J'ai créé mon propre UIActivityItemProvider; version simplifiée ici:

class MyItemProvider: UIActivityItemProvider {

  override func item() -> AnyObject {
    self.placeholderItem
  }

  override func activityViewController(activityViewController: UIActivityViewController, dataTypeIdentifierForActivityType activityType: String?) -> String {
    return kUTTypePDF as String
  }

  func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
    return self.placeholderItem
  }
}

Et commencer à communiquer avec quelque chose comme:

let myPDF = NSData(contentsOfURL: NSBundle.mainBundle().URLForResource("testpdf", withExtension: "pdf")) {
let activityVC = UIActivityViewController(activityItems: [MyItemProvider(placeHolder: myPDF)], applicationActivities: nil)
self.presentViewController(activityVC, animated: true, completion: nil)

Je m'attends à un sharedialog comme:

L'utilisation de UIActivityViewController et UIActivityItemProvider de partager PDF

Mais tout ce que j'obtiens est:

L'utilisation de UIActivityViewController et UIActivityItemProvider de partager PDF

Des suggestions?

  • La Documentation dit que le fait de fournir NSData (et seulement NSData) déclenche un appel pour dataTypeIdentifierForActivityType - mais ce n'est pas vrai. Aussi NSURL déclenchera que. Fournir NSURL au lieu de NSData montrera au moins la plupart des Applications installées - à l'exception de "enregistrer dans iBooks".
InformationsquelleAutor coyer | 2016-06-23