Google Chrome в Android (также iPhone) убивает соединения через веб-сокет через некоторое время, которое колеблется между 20 сек - 3 мин, в зависимости от устройства.
Он также не может обрабатывать простые таймеры или интервалы, когда приложение не на переднем плане, как в примере, который я прикрепляю внизу.
Я понимаю, что это нормально, для обновления срока службы батареи и сохранения ресурсов мобильного устройства, но это отстой ... Это действительно больно для любого веб-разработчика, когда пользователям нужно постоянно подключаться к сокету, а не Потеря подключения к веб-сокету, когда просто откройте WhatsApp, чтобы ответить на сообщение или другую вкладку браузера, а затем вернулись в веб-приложение и его отключили. Например, чат.
Есть ли решение этой проблемы? Что-то, что можно настроить прямо из Chrome, специальное разрешение для веб-приложения, какой-то обход для этой ситуации?
Это веб-приложение, добавленное к стартовому экрану Android ... и, тем не менее, chrome, похоже, не придает ему особого приоритета, продолжает убивать websocket и отказывается выполнять javascript, когда веб-приложение находится в фоновом режиме. (экран выключен или другое приложение на переднем плане)
Надеюсь, я четко объяснил, я новичок в stackoverflow, и мой английский не очень хорош.
Заранее спасибо!
Например, простая страница, которую вы можете запустить из своих мобильных браузеров и увидеть, что интервал не выполняется, как 10 секунд, как и следовало ожидать
<script>
setInterval(function() {
var timeNow = new Date().toLocaleTimeString()
document.body.innerHTML += "<div> " + timeNow + "</div>"
}, 10000)
</script>