[英]How does the WhatsApp web client still work with the latest iOS update (SDK version 13.0+)?
[英]How does the web version of Whatsapp work on iOS devices considering the OS shuts apps in 30 seconds?
現在對於那些不知道的人,可以去https://web.whatsapp.com/並通過交換二維碼和通過應用程序的網絡擴展聊天來同步你的Whatsapp
聊天。
我對他們如何進行初始握手(可能正在與 whatsapp 服務器進行通信)以及他們如何快速同步數據以進行聊天(可能直接從設備到客戶端使用開放套接字)不感興趣。
我很好奇該應用程序如何在 iOS 后台運行。 AFAIK 運行后台Intent Service
非常簡單。 但不適用於iOS。 iOS 僅允許在應用程序正常關閉后最多 30 秒。
1)我嘗試崩潰應用程序(向上滑動)(仍然是網絡版本正常運行)
2)我禁用了Background App refresh
網絡版本沒有停止。
3)即使禁用Notifications
,網絡版本仍然正常工作。
4)當Google Maps
為您提供指示該應用程序正在BG中運行的方向時,他們也沒有Blue bar
5) 他們是否使用虛擬Geo Fencing
來維持生命? (但那 d 也需要 BG App Refresh)
是 iOS 8 上引入的一些新功能,我不知道
順便提一下,Apple 在 iOS 10 中引入了通知服務擴展點,可用於實現此目的。 以下僅適用於 iOS 9.x 或更早版本。
除了那些使用 VoIP 后台模式(OT:和 IIRC 藍牙后台模式)的應用程序之外,iOS 中的任何應用程序都不能通過保持連接的套接字在后台長期存活,或保證通過遠程通知喚醒。
applicationDidEnterBackground:
上只有大約 5 秒的運行時間applicationDidEnterBackground:
在被置於后台之后,除非它為任何后台模式或任務注冊。 如果此委托方法中的時間用完,應用程序將被終止。因此,要么 Apple 放棄 WhatsApp 使用 VoIP 后台模式用於 WhatsApp Call 以外的目的,要么 WhatsApp 碰巧擺脫“使用您的手機同步”架構並為 iPhone 做一些新的事情。
根據文檔,應用程序可以保留在后台對應用程序執行有限更新。 您可以一個接一個地繼續擴展后台進程。 查看執行有限長度的任務。 我認為從后台殺死應用程序仍然會執行系統注冊的操作。
Whatsapp 做了一些巧妙的網絡會話令牌 + 后台應用程序令牌生成以保持會話有效。
正如 Steven Darbey 在#32112433 中提到的,這很可能是使用新的 iOS 8 PushKit 服務實現的,其中包括 VoIP 服務通知類型,允許應用程序從后台恢復。 出於非 VoIP 目的濫用 API,但 Apple 顯然對此視而不見。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.