【问题标题】:Not able to share pdf via whatsapp无法通过whatsapp分享pdf
【发布时间】:2018-05-16 11:24:11
【问题描述】:

我有一个正在转换为 pdf 的 html 数据。现在我想通过whatsapp分享那个pdf。我试图像这样实现它......

  let pdfData = generatePDF(from: self.appDelegate.HTMLContent)

  let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [pdfData], applicationActivities: nil)

self.present(activityViewController, animated: true, completion: nil)

但是当我选择发送的收件人时,收到消息This item cannot be shared. Please select a different item 但是可以通过消息应用程序进行共享。问题在于whatsapp。

也参考了这个链接..Share PDF through WhatsApp

但这并没有帮助......

【问题讨论】:

    标签: ios swift whatsapp uiactivityviewcontroller


    【解决方案1】:

    您不能直接传递数据。您应该将 pdf 文件存储在 document 或 temp 目录中,然后传递 pdf 文件的 url。

    let vc = UIActivityViewController(activityItems: [storeurl], applicationActivities: [])
    
    self.present(vc, animated: true, completion: nil)
    

    【讨论】:

    • ok @iParesh 所以你说storeurl 将包含pdf文件..?
    • 好的..所以你能建议我怎么做吗..即如何将我的 self.appDelegate.HTMLContent 存储在 storeUrl..?
    • 这个链接可能对你有帮助stackoverflow.com/questions/33503211/…
    • 我将我在代码上创建的 pdf 文件存储在 NSDocumentDirectory 上,并带有“NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)”,但我无法在 whatsapp 上共享该文件。它给出了一个警告,这种类型的文件不能共享并关闭活动控制器。
    【解决方案2】:

    使用 DocumentInteractionController,您的问题将得到解决

    let url = Bundle.main.url(forResource: "Sample", withExtension: "pdf")!
    docController = UIDocumentInteractionController(url: url)
    docController?.delegate = self
    docController?.presentOptionsMenu(from: self.view.frame, in:self.view, animated:true)
    

    【讨论】:

    • 好的..那么应该用什么来代替self.appDelegate.HTMLContent(在我的情况下)
    • 我在活动视图控制器上遇到了同样的问题。当我使用 documentInteractionController 时,它起作用了
    • 你想分享数据还是网址?
    • 我同意你的说法。但是我会将我的pdfData 放在你的答案中的什么位置呢?
    猜你喜欢
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多