带有社交元数据的 Firebase 动态链接未在 iMessage 上显示图像(iOS 消息)
Posted
技术标签:
【中文标题】带有社交元数据的 Firebase 动态链接未在 iMessage 上显示图像(iOS 消息)【英文标题】:Firebase Dynamic Links with Social Metadata not showing image on iMessage (iOS Messages) 【发布时间】:2020-04-26 19:37:07 【问题描述】:我遇到了动态链接和社交元数据问题。在 Facebook 上共享时似乎可以正常工作...图像已正确附加。但是当我在 ios 上使用 Messages 共享时……没有图像出现。只是 Firebase 文件夹徽标。
【问题讨论】:
【参考方案1】:我遇到了完全相同的问题,我找到了一种在 iMessage 中显示预览图像的方法,方法是创建 LPLinkMetadata 或 LinkPresentation。即使它没有解决核心问题,它似乎也能正常工作。
基本上,我首先下载了要在预览中显示的图像,然后基于该图像创建 LPLinkMetadata。
let image = UIImage(data: data)! //Image to show in preview
let metadata = LPLinkMetadata()
metadata.imageProvider = NSItemProvider(object: image)
metadata.originalURL = url //dynamic links
metadata.title = "Holland Bloorview Kids Rehabilitation Hospital on Flixxaid"
let metadataItemSource = LinkPresentationItemSource(metaData: metadata)
let activity = UIActivityViewController(activityItems: [metadataItemSource], applicationActivities: [])
self.present(activity, animated: true)
LinkPresentaionItemSource 来自this blog。
class LinkPresentationItemSource: NSObject, UIActivityItemSource
var linkMetaData = LPLinkMetadata()
//Prepare data to share
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata?
return linkMetaData
//Placeholder for real data, we don't care in this example so just return a simple string
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any
return "Placeholder"
/// Return the data will be shared
/// - Parameters:
/// - activityType: Ex: mail, message, airdrop, etc..
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any?
return linkMetaData.originalURL
init(metaData: LPLinkMetadata)
self.linkMetaData = metaData
【讨论】:
谢谢!在此期间,这是一个很好的解决方法。我注意到的几件事:Facebook 的预览有时不会加载图像,但那是次要的。此外,当我发布到 Facebook 或其他平台时,链接会弹出 preview.link 页面,而不是直接打开应用程序。有没有办法避免这种情况? 我注意到当我从 activityViewController 编辑 Facebook 帖子时,图像没有显示。但是,该图像似乎在 Facebook Feed 中的实际帖子中显示得很好。如果动态链接设置正确,它应该显示警报视图控制器说“离开 Facebook?”和“此网页正在尝试打开 Facebook 以外的应用程序。您确定要打开它吗?”。如果没有出现,那么我想你应该回去看看动态链接本身是否正常工作。以上是关于带有社交元数据的 Firebase 动态链接未在 iMessage 上显示图像(iOS 消息)的主要内容,如果未能解决你的问题,请参考以下文章
Android - Google + 上的 Firebase 动态社交元标记链接
Flutter firebase动态链接社交标签信息根本不显示
带有颤动的 Firebase 动态链接:深层链接 URL 未打开应用程序