在使用Facebook SDK之前,我们曾经通过UIActivityViewController进行共享,因为Facebook不允许我们预先填写用户共享的信息,我们的解决方案是使用正在共享的图像的用户描述信息UIPasteboard.general.string
。因此,应用程序将切换到信使,用户可以粘贴。在我们开始使用Facebook SDK之前,这一直很好。
现在看来,当它打开 Messenger 时,UIPasteboard.general.string
被重置,我们不再能够将图像描述复制到剪贴板。
这就是我分享给信使的方式:
let sharePhoto = FBSDKSharePhoto()
sharePhoto.image = image
let content = FBSDKSharePhotoContent()
content.photos = [sharePhoto]
FBSDKMessageDialog.show(with: content, delegate: delegate)
是的,在 FB lib 更新后,我也堆积在那个员工身上。至于我 - 我想出了图像上的网络链接,如下所示。因此 - 您不需要要求用户粘贴某些内容。您可以自己完成并将其粘贴到标题或说明中。
let content = LinkShareContent(url: url,
title: title,
description: description,
quote: nil,
imageURL: imageURL)
let dialog = ShareDialog(content: content)
dialog.presentingViewController = parentVC
dialog.mode = .automatic
dialog.completion = { result in
...
}
try? dialog.show()
Facebook不支持UI共享图像和文本。如果要同时共享图像和文本,可以从应用的设置创建自定义故事,并将其作为开放式图形故事共享。这是文档。