3

ユーザー ID と潜在的に他の情報を Service Worker に保存する方法はありますか?

プッシュ通知を送信すると、ローカルに保存された情報を使用して何かを行うことができますか?

localStorage を使用しようとしましたが、認識されないようです。

このエラーが発生したため:

Uncaught ReferenceError: localStorage is not defined

4

3 に答える 3

6

Service Workerには非同期 API がないため、ローカル ストレージは使用できません。Service Worker は完全に非同期になるように設計されているため、Service Worker コンテキストで同期 API を使用することはできません。代わりにIndexedDBを使用することもできますが、残念ながら、API はかなり扱いにくいものになっています。

于 2015-10-20T12:51:54.197 に答える
5

最近同じことを達成したかった。IndexedDB は、UID を渡すだけで非常に重く見えました。しかし、サービス ワーカーの URL パスのクエリ パラメータを介して UID を渡すことができることに気付きました...

navigator.serviceWorker.register(`/public/js/lib/service-worker.js?uid=${window.uid}`).then((reg) => {

...あとlocationは、Service Worker 内で解析してアクセスするだけです。

于 2016-01-18T16:59:19.987 に答える