web-dev-qa-db-ja.com

プログレッシブWebアプリ(PWA)は、モバイルデバイスでバックグラウンドサービスを実行して、ハードウェア(加速度計、gps ...)からデータを取得できますか?

https://whatwebcando.today/ を使用してモバイルブラウザの機能を確認できますが、フォアグラウンドで実行されていないときにハードウェアAPIを照会できますか?

つまり... PWAを使用すると、Android用のOcto Uと同様に、バックグラウンドで実行中にハードウェア情報を取得し、その情報をWebサーバーに投稿できるアプリを構築できますか?

13
Rafael Oliveira

「バックグラウンドで」コードを実行する最新の方法は、Pushイベントハンドラー(着信プッシュメッセージによってトリガーされる)を介して、 service worker を使用することです。 、またはそのsyncイベントハンドラー(以前に失敗したタスクの自動再生によってトリガーされます)。

現在、サービスワーカーの内部から質問している種類のハードウェアセンサーにアクセスすることはできません。

8
Jeff Posnick

サービスワーカーは、イベント駆動型モデルで実行されます。これは、登録されたイベント(現時点ではネットワークUI、プッシュ通知、バックグラウンド同期を行うブラウザーUI)の場合にのみスピンアップすることを意味します。あなたが求めていると思うのは、ジオフェンチング機能です。知る限り、これはSWモデルに追加するために議論されているものです。そうでない場合は、マーケティングの目的にとって非常に価値があるためです。私はそれがネイティブアプリで使用されていることを知っているので、私はそれがレーダー上にあると思います。 GPSはフロントエンドからアクセス可能で、ブラウザで長年使用されてきました。ただし、ユーザーはサイト/ PWAをブラウザーにロードする必要があります。

10
Chris Love