我最近构建了一个HTML5网络应用程序,旨在通知用户何时接近设定目的地。我已将其设置为缓存,因此可以在没有Web访问的情况下使用具有GPS或AGPS功能的设备。因此,要设置图片,它是一个我已缓存并添加到主屏幕的Web应用程序,使其喜欢本机应用程序,但它实际上只是一个HTML5应用程序(使用Javascript)。< / p>
应用程序本身似乎正在工作(因为它检测用户的位置,因为它不会返回任何错误,因为我知道否则会这样),但我已经确定了它的一个主要问题;当应用程序不再处于焦点时,HTML5地理定位功能会在短时间内停止工作(我知道这一点,因为当我运行它并更改为其他应用程序时,地理定位指示会从iPhone的屏幕上消失,然而,当我关注应用程序时,地理定位图标仍然存在)。
我打算让应用程序工作,以便当用户距离目的地200米时,应用程序的窗口成为焦点,并向用户发送警报,通知他们他们正在接近目的地。因此它被设计为在后台工作。
问题在于iPhone上似乎至少一个网络应用程序只能在窗口聚焦时才能进行地理位置访问(我认为就是这种情况,因为我进入了iPhone上的位置设置并看到了我的应用程序的位置设置已启用,仅在应用程序正在使用时跟踪位置,即当应用程序在屏幕上可见时。)
我正在寻找的是某种方式(在HTML5或JS中),即使应用程序不可见,Web应用也可以继续监控用户的位置在屏幕上。
以下是我用来检测用户位置的代码:
function getLocation(){
if(geo_position_js.init()){
geo_position_js.getCurrentPosition(success_callback,error_callback,{enableHighAccuracy:true});
}
else{
alert("Warning: unable to determine your position!");
}
}
function watchCurrentPosition() {
navigator.geolocation.watchPosition(success_callback, error_callback, {enableHighAccuracy:true});
}
function success_callback(p)
{
return [p.coords.longitude.toFixed(2), p.coords.latitude.toFixed(2)];
}
function error_callback(p)
{
alert("Warning - error!");
}
我在iPhone 6上在iPhone 6上运行它,如果它有用的话。提前谢谢!