Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
考虑到操作系统在30秒内关闭应用程序,Whatsapp的网络版如何在iOS设备上工作?_Ios_Objective C_Ios8_Background Process_Whatsapp - Fatal编程技术网

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

考虑到操作系统在30秒内关闭应用程序,Whatsapp的网络版如何在iOS设备上工作?,ios,objective-c,ios8,background-process,whatsapp,Ios,Objective C,Ios8,Background Process,Whatsapp,现在,对于那些不知道的人,可以通过交换二维码和通过应用程序的web扩展进行聊天,转到并同步您的Whatsapp聊天 我对他们如何进行初始握手(可能是与whatsapp服务器通信)以及他们如何在聊天时如此快速地同步数据(可能是直接从设备到客户端使用开放式套接字)不感兴趣 我很好奇这个应用程序在iOS的后台是如何工作的。AFAIK运行后台Intent服务非常简单。但不适用于iOS。iOS在应用程序正常关闭后最多只允许30秒 1) 我试图破坏应用程序(向上滑动)(网络版仍在正常运行) 2) 我禁用了后

现在,对于那些不知道的人,可以通过交换二维码和通过应用程序的web扩展进行聊天,转到并同步您的
Whatsapp
聊天

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

我很好奇这个应用程序在iOS的后台是如何工作的。AFAIK运行后台
Intent服务
非常简单。但不适用于iOS。iOS在应用程序正常关闭后最多只允许30秒

1) 我试图破坏应用程序(向上滑动)(网络版仍在正常运行)

2) 我禁用了
后台应用程序刷新
web版本没有停止

3) 即使禁用
通知
网络版本仍能正常工作

4) 此外,当
谷歌地图
为您提供指示应用程序正在BG中运行的指示时,他们也没有类似的
蓝色条

5) 他们是否使用虚拟
地理围栏
让他们活着?(但这也需要BG应用程序刷新)

是不是iOS 8上引入了一些新功能,但我不知道有多少新功能,因为应用程序可以在后台对应用程序执行有限的更新。您可以继续一个接一个地扩展后台进程。查看并执行有限长度的任务。我认为从后台删除应用程序仍然会执行系统注册的操作


Whatsapp做了一些巧妙的web会话令牌+后台应用令牌生成,以保持会话有效。

作为旁注,苹果在iOS 10中引入了通知服务扩展点,可用于实现这一点。以下内容仅适用于iOS 9.x或更早版本


iOS中的任何应用程序都不能在后台长时间处于活动状态,或者 保证通过远程通知唤醒,但使用VoIP背景模式(OT:和IIRC蓝牙背景模式)的情况除外

  • 应用程序置于后台后,在
    ApplicationIdentinterBackground:
    上只有约5秒的运行时间,除非它注册用于任何后台模式或任务。如果此委托方法中的时间不足,应用程序将被终止
  • @xoail提到的后台任务模型有一个特定于应用程序的、系统强加的时间限制(最多30秒…?),并且不能扩展。是指应用程序在暂停前完成当前工作,如上传媒体。自iOS 7.0以来,后台传输服务是长时间运行的文件传输的替代方案
  • 观察到,静音远程通知仅在充电器和Wi-Fi上持续触发,但在其他情况下总是被iOS限制。所以这有点不确定——更不用说可以通过翻转应用程序的后台应用程序刷新开关来关闭它了
  • VoIP后台模式(在iOS 8及更高版本中)保证在收到来自APN的VoIP通知时调用应用程序的处理程序。但应用程序审查指南明确规定,背景模式只能用于其预期目的
因此,要么苹果放弃WhatsApp将VoIP后台模式用于WhatsApp呼叫以外的用途,要么WhatsApp恰好摆脱了“使用手机进行同步”的概念架构,为iPhone做了一些新的事情。

正如Steven Darbey在中提到的,这很可能是使用新的iOS 8 PushKit服务实现的,该服务包括VoIP服务通知类型,允许应用程序从后台恢复。将API误用于非VoIP目的,但苹果显然对此视而不见


我能告诉您的最快答案是Parse.com的源代码,这将是我认为最可靠的答案。Parse归Facebook所有,我相信他们在代码中使用了whats应用程序方法的一些优点。他们只是让自己像上周一样开源:。他们已经开放了他们在客户端所做的一切。他们进行idevice到idevice的通信、推送、按需后台工作等等,这实际上是一段非常令人印象深刻的代码,都是用OBJC编写的。这只是一种预感,但可能是web版本在使用安全令牌(QRCode)验证后与iOS断开连接。Whatsapp可能允许您继续使用web版本,直到会话到期。这与新的iOS 8 AFAIK无关。因为微信iOS版本很久以前就有相同的功能。(在iOS 8之前)。所以我猜@xoail评论是正确的抱歉@xoail但你错了。微信可能像Skype或Facebook messenger一样工作。我很确定whatsapp网络版已经连接到了iOS上的后台服务,只要我将手机置于飞行模式,web客户端就会断开连接@Bluewings,但你错了。微信可能像Skype或Facebook messenger一样工作。我非常确定whatsapp web版本已经连接到iOS上的后台服务,因为我一把手机置于飞行模式,web客户端就会断开连接,但似乎没有人提供最终答案,特别是我已经禁用了“后台模式”,它仍然可以工作:-(@rahulg您关闭后台应用程序刷新模式有多长时间了?可能是Web版本与应用程序进行身份验证有时间限制,并且应用程序确实使用后台应用程序刷新。Like网站每隔30分钟检查其数据库,查看应用程序中的用户会话是否仍然有效。上面的“OT”是什么意思?