web-dev-qa-db-ja.com

バックグラウンドジオロケーションServiceWorker-Webアプリがフォーカスを取り戻したときのonMessageイベントの順序

詳細と詳細な説明については、このW3Cサービスワーカー issue を参照してください。

これは私のHTML5 Webアプリのシナリオです:-

  • 私のWebアプリはバックグラウンドで実行されている間、ポケットに入れられています
  • KMをクロックアップすると、サービスワーカーが定期的にGPS更新を受信し、postMessage()を呼び出して、アプリが最終的にGoogleマップにプロットするためにそれらをキューに入れます
  • 乗車の最後にビールを注文し、Webアプリをフォアグラウンドにして、どこに行ったか、平均速度などを確認します。

私の質問はこれらです:-

1)ServiceWorkersによってトリガーされるすべてのメッセージイベントの前または後にフォーカスイベントが発生しますか?

2)フォーカスが最初の場合、setTimer(0、backlogCleared)は、「処理されるすべてのバックグラウンドスタッフ」を確立するヒューリスティックメカニズムとして十分でしょうか?

3)とにかく、postMessage()メッセージ(アラモードFirebaseのプッシュ通知)を折りたたんで、最後/現在のメッセージのみが受信されるようにしますか?

4)バックグラウンドの地理位置情報を承認するために必要な権限についてアイデアがある場合は、W3Cで追加してください。

乾杯、そしてライディング、ランニング、セーリング、ドライブを楽しみましょう!

16
McMurphy

これで、Brotkrumen Ultimate Webアプリが完成しました。すべてのソース/画像ファイルは https://drive.google.com/open?id=0B7Rmd3Rn8_hDNW1zSWRoXzBTcl にあります。

最も重要な設計/提案仕様の変更は、TravelManagerサブスクリプションがクライアント固有である必要があることです。 TravelEventには、目的のClient.id(TravelEvent.source.id)が含まれている必要があります。これは、UAがクライアントごとにGeoLocationの更新を監視およびフィルタリングする必要があることを意味します。 「到着」ボタンを押すと表示される旅行の概要など、新しいデモ機能も追加しました。 「Map Trip」または「Replay」を押すと、旅行をGoogleマップに再生することもできます。旅行の最後と次の地理位置情報の更新が両方ともマップウィンドウに表示されている場合、CSSの遷移によってマーカーの動きがスムーズになります。

[〜#〜]ください[〜#〜]バックグラウンドGeoLocationを立ち上げ、Webアプリがネイティブアプリと競合するのを助けてください!

TravelManagerソリューションの設計に問題がある場合は、お知らせください。それに裂け目があります!

6
McMurphy