当我锁定iPhone时Javascript停止,它仍然可以运行吗?

时间:2011-08-13 01:38:10

标签: javascript iphone

有没有办法告诉javascript函数即使手机被锁定也能继续运行?

我有一个计时器,即使手机处于空闲状态,我也需要继续运行。

3 个答案:

答案 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,旨在在用户不使用时节省电量。