Javascript останавливается, когда я блокирую iphone, он все еще может работать?
Есть ли способ сказать, что функция javascript продолжает работать, даже когда телефон заблокирован?
В основном у меня есть таймер, который мне нужно продолжать работать, даже когда телефон настроен на простоя.
Ответы
Ответ 1
Да, вы можете. Вы даже можете запустить JavaScript, когда сафари находится в фоновом режиме.
Просто поместите скрытый фрейм на свой сайт:
<iframe src="background.html" style="display:none;"></iframe>
background.html:
<!DOCTYPE HTML>
<head>
<meta http-equiv="refresh" content="3" />
</head>
<body>
<script>
parent.run_function_from_core_page();
</script>
</body>
</html>
Страница в скрытом фрейме обновляется каждые 3 секунды и запускает JavaScript, даже если телефон заблокирован.
Будьте осторожны, так как это может привести к высокому трафику данных, если вы не используете WiFi!
Ответ 2
РЕДАКТИРОВАТЬ. Вы можете запустить синхронизированный код javascript в фоновом режиме с помощью трюка <iframe>
. См. ответ Zsolt на этот вопрос.
Вы не можете продолжать запускать javascript, пока iPhone спит, используя setTimeout()
.
Когда телефон засыпает, Safari убьет любые запущенные процессы javascript, используя setTimeout()
. Ознакомьтесь с этим ответом здесь по некоторым причинам, почему это делается.
Ответ 3
Неа. Когда телефон заблокирован и переходит в режим сна, ваш код не будет работать. Это по дизайну; iOS - это, по сути, сотовые телефоны, а не полноценные ПК, и предназначены для экономии энергии, когда пользователь не использует их.