@kibez

Как отследить закрытие PWA?

Есть PWA приложение. Можно-ли как-то отследить факть его закрытия ? Тоесть PWA ведет обмен с сервером. Так как канал между PWA апликухой и сервером не стабильный (мобильный интернет), то приходиться удерживать "сессию". Тоесть когда фактически инет пропадает сервер считает что все ок и продолжает держать сессию. Когда инет появлется клиент подключается к той-же сессии и все продолжается. НО!!
Если юзер просто ЗАКРОЕТ PWA (буквально как апликуху ... пристрелит), то сессия будет висет зря долгое время. Что не хороше ..... Есть-ли какой-то механизм детектинга закрытия PWA??
Или на крайняк можно-ли как-то с помощю сервис воркеров вести обмен с сервером ужа при закрытой PWA?
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 3
dollar
@dollar
В случае убийства, PWA ничего не успеет сделать. С таким же успехом можно буквально прострелить телефон огнестрельным оружием или бросить в кислоту.

Просто найдите сбалансированную цифру, сколько держать сессию. Зависит от цены создания и поддержания сессии.

Чуть более умный вариант, если создание сессии дорогое - сделать кеш на стороне сервера конкретно для сессий, чтобы не сразу их удалять, но и не поддерживать полноценно. А если юзер вернётся, то с минимальными затратами восстановить сессию.

И ещё более умный вариант - как-то отслеживать (условно) "характер" пользователя. Например, если зашёл и закрыл, то сессия удаляется довольно быстро. А если вернулся через час, или на следующий день, то перевести пользователя в статус "активный", и для него вообще таймаут можно на пару дней поставить. Ну, опять же, в случае высокой цены создания сессии. Честно говоря, мне сложно представить задачу, где цена настолько высока, чтобы так заморачиваться.
Ответ написан
@rPman
Отследить прибитие приложения можно отдельным сервисом, работающим в фоне (внимание - батарейка), оно же может сообщить отдельным подключением об этом факте (простым http get запросом).
Ответ написан
@ofigenn
Если устроит visibilitychange event. Или как-то абузить background sync, от "пристреливания". Если не подойдет, то только таймаут сессии.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 сент. 2019, в 20:10
2000 руб./за проект
18 сент. 2019, в 19:07
150 руб./в час