- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试能够发送带有包含 OpenGraph 预览图像链接的 SMS 消息,这些图像将加载到 iOS“消息”应用程序中并显示缩略图,而无需用户先按 [Tap To Load Preview]。 . 如何实现?
为此,我向运行 iOS 10 并使用“信息”应用程序打开的 iPhone X 发送短信。
文本消息正文包含指向资源(HTML 网页)的 URL,其正文包含带 og:image
的 OpenGraph 元数据标签。例如:
<meta property="og:image" content="https://www.apple.com/v/iphone/home/t/images/home/og.png?201610171354" />
出于演示目的,我们正在努力使图像首先加载并立即加载,而无需用户点击按钮才能看到它...
预期行为:
实际行为:
作为旁注,在我们测试过的 Android 客户端上,支持 OpenGraph 的图像将立即显示,而不会提示用户执行任何操作。对于任何其他受测试的 OpenGraph 支持的应用程序也是如此,包括 Facebook。
作为引用,这里是我测试过的一些方法,试图让它为我们工作(以及其中的组合):
50x50, 60x50
等及以上)之间的其他变体的图像。<head>
之外页面的。og:image
之外的所有标签的页面标签。Content-Type
单独 header 。尝试从美国和澳大利亚的各种电话号码发送,还尝试将 SMS 消息本身的“发件人”字段更改为类似 "VERIZON", "Verizon", "Telstra", "APPLE", "Apple", "Facebook", "Uber", "China"
的字符串.
尝试从手持电话以及 Twilio Messaging API 服务发送消息。
以上均不适用于 iPhone X。
最佳答案
SMS 无法做到这一点。如果您将它作为 iMessage 发送,它会自动显示预览。
在 iPhone 上,预览是在设备上生成的,而不是在服务器端生成的。当用户点击预览时,他们的设备会向服务器发送 4 个 GET 请求。如果预览是自动生成的,则会存在安全漏洞。您可以向任何 iPhone 用户发送文本并获取他们的 IP 地址。
使用 iMessages,预览会自动生成,但不存在安全漏洞。发送链接的设备向服务器发送 4 个 GET 请求,生成预览,然后通过 iMessages 将预览传输给接收者。因此,接收设备无需向服务器发送生成预览的请求。网络服务器的所有者不知道他们的 IP 地址。
在 Google 的 Android 消息应用程序中,预览是在服务器端生成的。有一个 GET 请求发送到 Web 服务器。但它源自 Android Messages 服务器。因此,网络服务器的所有者再次没有从他们收到的文本中收到收件人的 IP 地址。
关于ios - 删除 iPhone OpenGraph SMS 消息需要按 "Tap to Load Preview",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50616536/
有什么区别 $('.classname').on('click tap', function(){}); 在第二种情况下,事件之间有一个 OR 符号('||') $('.classname').on(
在我的完整日历中,我不想支持拖动选择。仅应在一个插槽中创建事件。在普通浏览器中它运行良好(我只是添加到选择 X 分钟)。我遇到的问题是,在移动设备上,您需要长按并拖动才能触发我的“添加事件”功能。 有
我有一组为 Jenkins 生成 JUnit 输出的脚本。 我执行的代码看起来像这样(这只是一个片段,所以你明白了): #!/usr/bin/env perl
我有一个 JQuery Mobile 页面,其中的内容是一个列表,用户可以在其中点击以选择(突出显示)元素。选择所需数量的列表元素后,可以通过点击页脚中的删除按钮将其删除。该页面在我的桌面上运行良好,
我正在使用 TAP-Windows(来自 OpenVPN 项目)创建一个界面,如所述 here和 here .我的代码基于第一篇文章中提供的示例: const string UsermodeDevic
我使用 TAP::Formatter::HTML 运行一些 TAP 测试。 这个 CPAN 模块生成漂亮的动态 HTML 报告,但我想使用通过测试、失败测试等的数量 - 在所有测试完成后将它们插入数据
我在应用程序中有一个按钮。我希望它根据我是点击它(暂停动画)还是双击(重新启动动画)来做不同的事情 但是,当我双击时,它似乎先触发点击事件,然后快速连续双击。有没有解决的办法?这是一个已知问题还是我犯
问题是关于要使用 Tun/Tap 模块的 Linux 主机的正确配置。 我的目标: 利用现有的路由软件(下文中的 APP1 和 APP2),但拦截和修改它发送和接收的所有消息(由 Mediator 完
我已阅读 SO question: Controller for Buttons Sencha Touch 2 [Solved]实现点击按钮。有用! 不幸的是,我需要点击容器,而不是按钮。一旦我改变x
我似乎无法让 heroku 到 db:push,即使我已经安装了水龙头。它似乎不相信我。我还检查并在这里找到了一个文件夹:/Library/Ruby/Gems/1.8/gems/taps-0.2.23
我正在使用 Appcelerator for Android 应用程序, 在我设置 accessibilityHint 属性后,Talkback 说完这个字符串,暂停并始终说“双击激活,双击并按住长按
我正在尝试通过 Tapinstall 在 Windows 中控制 OpenVPN TAP 驱动程序的多个实例。似乎因为所有设备都有相同的 HWID - 'tap0901' - 我无法使用 tapins
我对 JQuery 移动“点击”事件有一个真正的问题。它发射了两次,我似乎无法阻止它。 问题是我有一页index.html,当您点击按钮时,您会转到page2.html。问题是,当您快速点击时,您将移
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我认为这将是一个奇怪的问题,但我想知道这是否可能。如果我正在使用一个我无法控制的库,如果它有一个具有虚函数的实体类,并且库本身正在创建这些实体,如 Entity* e = new Entity(),有
跟随 Apple 的 Guide to build a MealKeeper app ,我能够创建一个文本字段和一个 ImageView 。将 UITapGestureRecognizer 拖放到 I
我已经使用点击手势识别器制作了一个可点击的 View ,它工作得很好。但我想在触摸发生时突出显示 View ,并在触摸结束时将其删除。 我试过这个: - (IBAction)refresh:(UITa
有人能用简单的语言解释一下我们用来观察输出的普通可观察运算符和似乎具有相同功能的 do/tap 之间的区别吗?为什么我们要使用 do/tap? 最佳答案 RxJS v6+ 中的 do/tap 运算符或
我正在开发一个通过 Tap 阅读的程序。唯一的问题是,我不知道如何检测一个传输到分路器的结束和另一个传输的开始。 从水龙头读取数据的方式是否与 SOCK_STREAM 相同? 最佳答案 Tun/tap
这是我的简单测试代码: def test_function 0.tap do |v| v += 10 end end p test_function 为什么我在这里得到 0?我在等着得
我是一名优秀的程序员,十分优秀!