无法通过whatsapp分享pdf

Posted

技术标签:

【中文标题】无法通过whatsapp分享pdf【英文标题】:Not able to share pdf via whatsapp 【发布时间】: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

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

【问题讨论】:

【参考方案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..? 这个链接可能对你有帮助***.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 放在你的答案中的什么位置呢? 让我们continue this discussion in chat。

以上是关于无法通过whatsapp分享pdf的主要内容,如果未能解决你的问题,请参考以下文章

如何分享网络连接给whatsapp

iOS 无法使用 UIDocumentInteractionController 将视频分享到 Whatsapp

无法从我的网站在 Whatsapp 上分享

无法从我的 WebView 在 Whatsapp 上分享。无法加载位于 whatsapp://send?text= 的网页,因为 net::ERR_UNKNOWN_URL_SCHEME

通过分享意图分享图像到 Whatsapp

facebook、twitter、facebook登录、whatsapp分享、微信分享