Как изменить переменную области при получении push-уведомления - PullRequest
3 голосов
/ 17 июня 2019

В моем веб-приложении есть значок уведомления, который показывает количество уведомлений.Передний конец приложения выполнен с использованием angularjs.

Количество значков сохраняется в переменной $rootScope.Я хочу увеличить переменную (или вызвать веб-сервис, который возвращает количество), когда получено push-уведомление.

Файл serviceworker.js не имеет доступа к переменным области видимости в angularjs.Как я могу изменить значение переменной count из serviceworker.

Я думал о добавлении прослушивателя события изменения для элемента localStorage.

При входе в систему я создаю элемент.

localStorage.setItem('notifCount', 0);

Когда я получу push-уведомление, я увеличу notifCount в localStorage в serviceworker.js, и событие изменения будет запущено.Я мог бы добавить прослушиватель localStorage change в один из файлов контроллера и вызвать веб-сервис или просто увеличить переменную $rootScope.

Но это произойдет, даже если кто-то вручную изменит localStorage в инструментах разработки.

Я хочу знать, могу ли я сделать это таким образом (если это правильный путь) или есть лучшийметод.Я не чувствую, что это правильный путь.

1 Ответ

0 голосов
/ 17 июня 2019

Данные передаются между рабочими и основным потоком через систему сообщений - обе стороны отправляют свои сообщения с помощью метода postMessage () и отвечают на сообщения с помощью обработчика событий onmessage (сообщениесодержится в атрибуте данных события Message.) Данные копируются, а не разделяются.

Для получения дополнительной информации см.

...