有没有办法告诉javascript函数即使手机被锁定也能继续运行?
我有一个计时器,即使手机处于空闲状态,我也需要继续运行。
答案 0 :(得分:19)
是的,你可以。当safari在后台时,您甚至可以运行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上,它也会导致高数据流量!
答案 1 :(得分:12)
编辑:您可以使用<iframe>
技巧在后台运行定时的javascript代码。请参阅Zsolt's response to this question。
然而,当iPhone使用setTimeout()
睡觉时,您无法继续运行javascript。
当手机进入睡眠状态时,Safari将使用setTimeout()
终止所有正在运行的javascript进程。查看this answer here,了解为何会这样做。
答案 2 :(得分:3)
不。当手机被锁定并进入睡眠状态时,您的代码将无法运行。这是设计的; iOS设备本质上是手机,而不是功能齐全的PC,旨在在用户不使用时节省电量。