use*_*509 5 optimization ios uiactivityviewcontroller facebook-messenger swift
\n\n\n问题
\n\n必须对下面的代码进行哪些更改才能确保 Messenger 能够很好地处理
\nUIActivityViewController并共享图像和文本,或者至少共享图像?
背景
\n\n我用来UIActivityViewController分享我的应用程序中的文本和图像,并将它们发送到电子邮件、消息和其他共享应用程序。UIActivityViewController很棒,并且可以以简单且标准的方式与大多数应用程序\xe2\x80\xa6 配合使用,但是,我\xe2\x80\x99m 与 Messenger (Facebook Messenger) 存在问题,它不想\xe2\x80\x99 合作。
在下面的代码中,我点击 aUIButton来拍摄屏幕的快照图像,将其转换为 .png,然后将准备好的图像 ( imageShare) 连同我准备的文本 ( textShare) 一起发送到UIActivityViewController. 这个简单的方法允许我的应用程序成功共享到电子邮件、消息和除 Messenger 之外的许多其他共享应用程序。
(旁注,Facebook 只能分享准备好的图像 ( imageShare),但不能分享文本。)
问题
\n\nUIActivityViewController这些是尝试与 Messenger共享时出现的问题:
分享时activityItems: [textShare, imageShare]
分享时activityItems: [textShare]
UIActivityViewController.分享时activityItems: [imageShare]
代码
\n\n@IBAction func myButton(sender: UIButton) {\n\n // Take snapshot of screen\n let imageSnapshot: UIImage!\n UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 0)\n self.view.drawViewHierarchyInRect(CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height), afterScreenUpdates: false)\n imageSnapshot = UIGraphicsGetImageFromCurrentImageContext()\n UIGraphicsEndImageContext()\n\n // Prepare text to share\n let textShare: String!\n textShare = "This is my original text."\n\n // Prepare image to share\n let imageShare: NSData\n imageShare = UIImagePNGRepresentation(imageSnapshot)!\n\n // Share text and image\n let activity = UIActivityViewController(activityItems: [textShare, imageShare], applicationActivities: nil)\n if UIDevice.currentDevice().userInterfaceIdiom == .Phone {\n self.presentViewController(activity, animated: true, completion: nil)\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n图像
\n\niOS 提供UIActivityViewController可用的应用程序。

尝试使用 UIImage 而不是 NSData。您可以将 UIImage 转换为 AnyObject 并添加到数组中。
另请看这个问题:Sharing image using UIActivityViewController
| 归档时间: |
|
| 查看次数: |
4960 次 |
| 最近记录: |