删除 iPhone OpenGraph SMS 消息需要按 "Tap to Load Preview"

Remove need to press "Tap to Load Preview" for iPhone OpenGraph SMS Message

我正在尝试发送带有 link 的 SMS 消息,其中包含 OpenGraph 预览图像,这些图像将加载到 iOS "Messages" 应用程序中,并且会显示没有缩略图的缩略图用户必须先按 [Tap To Load Preview]... 如何实现?

为此,我正在向 iPhone X 发送一条短信,它是 运行 iOS 10 并使用消息应用程序打开。

短信 body 包含指向资源(HTML 网页)的 URL,其 body 包含 OpenGraph 元数据 og:image 标签。例如:

<meta property="og:image" content="https://www.apple.com/v/iphone/home/t/images/home/og.png?201610171354" />

出于演示目的,我们正在努力使图像首先加载并立即加载,而无需用户点击按钮才能看到它...

预期行为:

实际行为:

附带说明一下,在我们测试过的 Android 客户端上,支持 OpenGraph 的图像将立即显示,而不会提示用户执行任何操作。对于任何其他受测试的 OpenGraph 支持的应用程序也是如此,包括 Facebook。

作为参考,这里是我测试过的一些方法,试图让它为我们工作(以及其中的组合):

None 以上工作的 iPhone X.

无法使用 SMS 执行此操作。如果您将它作为 iMessage 发送,它会自动显示预览。

在 iPhone 秒,预览是在设备上生成的,而不是 server-side。当用户点击预览时,他们的设备会向服务器发送 4 个 GET 请求。如果预览是自动生成的,则会存在安全漏洞。您可以向任何 iPhone 用户发送文本并获取他们的 IP 地址。

使用 iMessages,预览会自动生成,但不存在安全漏洞。发送 link 的设备向服务器发送 4 个 GET 请求,生成预览,然后通过 iMessages 将预览传输给接收者。因此,接收设备无需向服务器发送生成预览的请求。并且他们的 IP 地址不为网络服务器的所有者所知。

在 Google 的 Android 消息应用程序中,预览是在服务器端生成的。有一个 GET 请求发送到 Web 服务器。但它源自 Android 消息服务器。因此,网络服务器的所有者再次没有从他们收到的文本中收到收件人的 IP 地址。