ユーザー ID と潜在的に他の情報を Service Worker に保存する方法はありますか?
プッシュ通知を送信すると、ローカルに保存された情報を使用して何かを行うことができますか?
localStorage を使用しようとしましたが、認識されないようです。
このエラーが発生したため:
Uncaught ReferenceError: localStorage is not defined
ユーザー ID と潜在的に他の情報を Service Worker に保存する方法はありますか?
プッシュ通知を送信すると、ローカルに保存された情報を使用して何かを行うことができますか?
localStorage を使用しようとしましたが、認識されないようです。
このエラーが発生したため:
Uncaught ReferenceError: localStorage is not defined
Service Workerには非同期 API がないため、ローカル ストレージは使用できません。Service Worker は完全に非同期になるように設計されているため、Service Worker コンテキストで同期 API を使用することはできません。代わりにIndexedDBを使用することもできますが、残念ながら、API はかなり扱いにくいものになっています。
最近同じことを達成したかった。IndexedDB は、UID を渡すだけで非常に重く見えました。しかし、サービス ワーカーの URL パスのクエリ パラメータを介して UID を渡すことができることに気付きました...
navigator.serviceWorker.register(`/public/js/lib/service-worker.js?uid=${window.uid}`).then((reg) => {
...あとlocation
は、Service Worker 内で解析してアクセスするだけです。