考虑到操作系统在30秒内关闭应用程序,Whatsapp的Web版本如何在iOS设备上运行?

rah*_*ulg 42 objective-c background-process ios whatsapp ios8

现在对于那些不知道的人,可以访问https://web.whatsapp.com/Whatsapp通过交换QR码同步你的聊天记录并通过应用程序的网络扩展聊天.

我对他们如何进行初始握手(可能与whatsapp服务器进行通信)以及如何快速同步数据以进行聊天(可能是直接从设备到客户端使用Open套接字)感兴趣.

我很好奇应用程序如何在iOS上的Background中工作.运行背景的AFAIK Intent Service非常简单.但不适用于iOS.应用程序正常关闭后,iOS最多只允许30秒.

1)我尝试崩溃应用程序(向上滑动)(仍然是网络版正常运行)

2)我禁用Background App refresh了网页版本没有停止.

3)即使禁用Notifications仍然Web版本正常工作.

4)当他们给出指示应用程序在BG中运行的指示Blue bar时,他们也没有喜欢Google Maps

5)他们是否使用Dummy Geo Fencing让他们活着?(但这也需要BG App Refresh)

这是iOS 8上引入的一些新功能,我不知道

And*_*ers 20

正如附注中所述,Apple在iOS 10中引入了Notification Service扩展点,可用于实现此目的.以下内容仅适用于iOS 9.x或更早版本.


iOS中的应用程序可以在具有保持活动套接字的后台中保持活跃状态​​,或者保证通过远程通知唤醒,除了那些使用VoIP后台模式(OT:和IIRC蓝牙背景模式)的应用程序.

  • 应用程序applicationDidEnterBackground:在放入后台后只有约5秒的运行时间,除非它已注册任何后台模式或任务.如果此委托方法中的时间不足,应用程序将被终止.
  • @xoail提到的后台任务模型具有特定于应用程序的系统强制时间限制(最多30秒......?),无法扩展.应用程序可以在暂停之前完成当前的工作,例如上传媒体.自iOS 7.0以来,后台传输服务是长时间运行文件传输的替代方案.
  • 观察到静音远程通知仅在充电器和Wi-Fi上一致触发,但总是被iOS限制.所以它有点不确定 - 更不用说可以通过翻转应用程序的后台应用程序刷新开关来关闭它.
  • VoIP后台模式(在iOS 8及更高版本中)保证在从APN收到VoIP通知时调用应用程序的处理程序.但App App指南明确指出,背景模式只应用于其预期目的.

因此,除了WhatsApp Call之外,Apple还放弃了WhatsApp使用VoIP后台模式的目的,或者WhatsApp恰好摆脱了"使用手机同步"架构并为iPhone做了一些新的事情.


xoa*_*ail 4

根据文档,应用程序可以保留在后台,对应用程序执行有限的更新。您可以继续一个接一个地扩展后台进程。研究执行有限长度的任务。我认为从后台杀死应用程序仍然会执行系统注册的操作。

Whatsapp 执行一些巧妙的 Web 会话令牌 + 后台应用程序令牌生成来保持会话有效。