わからない人のために、 https://web.whatsapp.com/ にアクセスし、QRコードを交換してWhatsapp
チャットを同期し、Web拡張機能を介してチャットすることができますアプリの。
彼らがどのように最初のハンドシェイクを持っているか(whatsappサーバーと通信している可能性があります)、またはチャットのためにデータを非常に高速に同期する方法(デバイスからクライアントに直接Openソケットを使用している可能性があります)には興味がありません。
iOSのバックグラウンドでアプリがどのように機能するかに興味があります。バックグラウンドIntent Service
を実行するAFAIKは非常に簡単です。ただし、iOSではありません。 iOSでは、アプリが正常にシャットダウンされてから最大30秒しか許可されません。
1)アプリをクラッシュさせてみました(上にスワイプ)(Webバージョンは正常に実行されていました)
2)Background App refresh
を無効にしました。Webバージョンが停止しませんでした。
3)Notifications
を無効にしても、Webバージョンは正常に機能しました。
4)また、Blue bar
がアプリがBGで実行されていることを示す指示を表示している場合、Google Maps
のようなものはありません。
5)彼らは彼らを生き続けるためにダミーGeo Fencing
を使用していますか? (ただし、そのdにはBGアプリの更新も必要です)
導入されたのはiOS8の新機能で、私は気づいていません。
補足として、AppleはiOS10にNotificationService拡張ポイントを導入しました。これを使用してこれを実現できます。以下はiOS9.x以前にのみ適用されます。
IOSのアプリは、キープアライブソケットを使用してバックグラウンドで長く存続することはできません。また、VoIPバックグラウンドモード(OT:およびIIRC Bluetoothバックグラウンドモード)を使用するアプリを除き、リモート通知によってウェイクアップすることが保証されます。
applicationDidEnterBackground:
で実行時間は最大5秒です。このデリゲートメソッドで時間がなくなると、アプリは終了します。したがって、AppleはWhatsAppがWhatsApp通話以外の目的でVoIPバックグラウンドモードを使用することを放棄するか、WhatsAppがたまたま「電話を使用して同期する」アーキテクチャから離れてiPhoneに新しいことをします。
docs に従って、アプリはバックグラウンドに留まり、アプリの有限更新を実行できます。バックグラウンドプロセスを次々に拡張し続けることができます。有限長タスクの実行を調べてください。バックグラウンドからアプリを強制終了しても、システムによって登録されたアクションが実行されると思います。
Whatsappは、セッションを有効に保つために、巧妙なWebセッショントークンとバックグラウンドアプリトークンの生成を行います。
Steven Darbeyによる#32112433で述べたように、これはVoIPサービス通知タイプを含む新しいiOS 8 PushKitサービスを使用して実装されている可能性が高く、アプリケーションをバックグラウンドから再開できます。 VoIP以外の目的でのAPIの誤用ですが、Appleどうやらそれに目をつぶっています。