2010-07-04 149 views
4

很多帖子都提到了iPhone应用程序,但我需要知道如何在网页上为JavaScript做到这一点。iPhone/Safari:如何在睡眠模式下继续执行javascript?

我的具体问题是我想跟踪设备的位置很长一段时间(比如汽车旅行)。当设备进入休眠状态时(这可能是在打电话时,我还没有尝试过这种情况),这就成了一个问题。我打开任何想法,包括预防睡眠模式(但因为我在Safari中,我不知道我必须做多少控制)。

+0

我并不确定,但是iPhone的底座没有保持?你可以显示一个弹出窗口,告诉用户保持他们的iphone插入;这将解决乘车的用户。至于其他的问题,你会立即杀死他们的电池。全球定位系统和互联网网络访问确实损害了电池寿命 – Andrew 2010-07-04 14:31:09

+0

我知道这些ramifactions。 用户会很清楚他们正在被追踪,这是网页的唯一目的。因此,假设他们将网页设置为Safari中最前面的页面,并且Safari处于活动状态。 另外我注意到,在设备进入睡眠状态后,会发生一些“watchPosition”迭代。但在这些少数(约5)后停止。 – Sid 2010-07-04 14:39:03

+0

@Andrew我会在我的车里试试这个。它在我的立体声中不起作用。 – Sid 2010-07-04 14:39:40

回答

6

你不能。网页不会执行JavaScript,除非(1)网页是最前面的,(2)Safari实际上是活动的。当设备睡着时,Safari不会保持活动状态。

如果你仔细想想,这个功能将是一个大规模的隐私泄露。想象一下,如果你访问了一个网页,那么即使你的设备关闭,你也会偷偷地追踪你的位置!你会很生气。即使你可以在技术上做到这一点,如果他们发现你做到了,人们可能会感到不安。

由于隐私和人身安全的原因,位置信息受到严密保护(请考虑潜行者和您的网页)。这就是您第一次获取位置时要求使用位置管理器的对话框的原因。

+2

我不认为隐私是一个问题。每当您尝试访问Mobile Safari中的位置服务时,用户是不是必须点击“好”?对我来说意味着同意。无论如何,对我来说。 – Andrew 2010-07-04 14:32:23

+1

感谢您的回复,尽管我认为这不像您建议的那样隐私泄露太多。用户总是通知并且不应该期望“睡眠”与“关闭”相同。但我猜这是一个意见问题。 – Sid 2010-07-04 19:47:17

+0

我会担心任何可以激活此位置管理器的远程脚本。鉴于网站的安全问题,您甚至无法确定您认为要求您所在位置的网站实际上是否在发送代码。有一个网页在后台运行并跟踪您的位置,即使您必须授予其启动权限,它也会变得更加危险。现在在移动Safari中加载了多少个网页?他们在那里有多长时间?打开一个洞并将其打开很容易。 – TechZen 2010-07-04 20:03:58