Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2022, 18:35
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

JavaScript не работает в PWA
Приветствую всех!

Написал простенькую PWA страницу и запускаю там скрипт который посылает на сервер координаты пользователя каждую минуту. И все работает отлично когда приложение активно на главном экране в телефоне. Но стоит его свернуть, как js прекращает свою работу. Но когда открываю снова приложение на экране, то отправляются сразу несколько запросов подряд (те что должны были сработать в фоновом режиме).

Подскажите как вылечить эту болячку? Как заставить js работать в фоновом режиме в PWA странице?
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2022, 18:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

arkadii_parovozov,
не использовать setInterval, забыть что этот метод есть в js.
как заменить, читать по ссылке ниже.

Вложенный setTimeout
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2022, 19:00
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

рони,
так я setTimeout и использую
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2022, 20:00
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

рони,
я выявил что при свернутом браузере (даже если просто перейти на другую вкладку), то не срабатывает это условие:
if (navigator.geolocation)

соответственно не может найти координаты:
navigator.geolocation.getCurrentPosition(function(position) {
  var latitude = position.coords.latitude;
  var longitude = position.coords.longitude;


Подскажите, можно как-то решить эту проблему? Можно ли получить координаты если вкладка не активна (в фоне)?
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2022, 23:04
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,709

Никак, скорее всего.
Так определено в спецификации geolocation
https://w3c.github.io/geolocation-ap...est-a-position
Обратите внимание на зеленое примечание

Цитата:
ПРИМЕЧАНИЕ . Обновления позиций предназначены исключительно для полностью активных видимых документов.
Желаемый эффект здесь заключается в том, что обновления позиций доставляются исключительно к полностью активным документам, которые видны; В противном случае обновления молча «падают на пол». Только когда документ снова становится полностью активным и видимым (например, iframeповторно прикрепляется к родительскому документу), обновления позиции снова начинают доставляться.
Это продиктовано соображениями конфидециальности и безопасности. Кто-нибудь может открыть человеку невидимую вкладку, человек про нее ничего не знает, а она спокойно передает его координаты.

Последний раз редактировалось voraa, 02.08.2022 в 23:11.
Ответить с цитированием
  #6 (permalink)  
Старый 03.08.2022, 08:31
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

Вот засада (( А через Service Worker тоже не получиться?
Сообщение от voraa Посмотреть сообщение
Это продиктовано соображениями конфидециальности и безопасности. Кто-нибудь может открыть человеку невидимую вкладку, человек про нее ничего не знает, а она спокойно передает его координаты.
Так браузер ведь спрашивает разрешения для отслеживания у пользователя. Если я дал согласие то пускай следит пока я не отзову разрешение. Вот нелюди!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает javascript StanislavV Общие вопросы Javascript 16 25.12.2014 18:51
Не работает всплывающие окно на JavaScript WInalekS Общие вопросы Javascript 1 25.07.2012 18:59
Не работает javascript в документе, вызванным AJAX. Hauster Общие вопросы Javascript 21 28.05.2012 23:14
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Не работает flot если его назначит через JavaScript PAMAC Firefox/Mozilla 4 09.11.2009 18:46