whatsapp web如何在iOS上运行?

时间:2015-08-20 07:47:13

标签: ios

Whatsapp为ios启用了whatsapp web。我在ios上查看了whatsapp网站,它运行良好,但如何?我关闭了后台应用刷新,然后关闭了whatsapp应用。然后我尝试使用whatsapp web并且运行良好。当我禁用我的iPhone的互联网连接时,whatsapp网站说“你的手机连接丢失了”whatsapp如何知道这一点?即使关闭,whatsapp如何在后台运行?

2 个答案:

答案 0 :(得分:3)

即使WhatsApp从多任务处理屏幕关闭,它的工作原理也很好,它可能会利用iOS 8对新的VoIP推送消息服务的支持。

https://developer.apple.com/library/prerelease/ios/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html

请注意“过去......如果用户退出VoIP应用程序,则无法再接收来自服务器的呼叫”,但使用新方法“如果在VoIP推送时它未运行,则会自动重启您的应用程序接收到的“。

WhatsApp现在在其应用程序中提供VoIP呼叫,因此它确实合法使用了这些类型的推送消息。是否认为滥用VoIP推送消息权限在后台启动应用程序,而不是用于呼叫而是将消息同步到网络,我不确定,但这似乎是最有可能解释它如何管理它

答案 1 :(得分:0)

只是猜测,但肯定必须使用静默推送通知方法唤醒应用程序并与Web客户端API交换一些数据,我正在等待有关此机制的更多技术细节,它似乎非常适用于任何其他应用程序和用例

添加信息:

我一直在调查一下这个问题,这就是我发现的:

  • 首先, WhatsApp 已经启用了为同一个用户打开多个会话的可能性,据我所知,这在WhatsApp Web发布之前是不可能的。
  • 其次,当扫描和验证QR码时,WhatsApp Web的Web客户端连接新启动的进程(可能在WhatsApp服务器的基础架构上),我们称之为 FakeClient FakeClient 与WhatsApp建立新会话,作为经典移动客户端,并以用户名与其进行交互。因此,WhatsApp Web客户端不直接与WhatsApp的服务器连接,而是与 FakeClient 连接。
  • 第三, FakeClient 在Web客户端和服务器之间交换消息,但它也从iOS应用程序接收 ping ,说“嘿!用户还活着“并将Web客户端中生成的消息历史记录与iOS应用程序同步。由于后台提取功能,iOS应用程序在后台运行时甚至可以实现这一点。 https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
  • 最后,当“FakeClient”停止从iOS应用程序接收“ping”时,它会通知Web客户端断开连接,因此会显示正确的消息。

这里更有趣的是应用程序如何能够保持连接即使应用程序严格关闭(将其从多任务屏幕中抛出)。 Apple似乎已经向这个应用程序授予了某种特殊权限,以便允许这种行为,AFAIK目前没有记录的方法来实现这一目标。