如何使用Phonegap跟踪设备位置(iOS和Android)设备

我想知道用户什么时候到达或离开某个位置.我正在尝试使用无线网络(检查移动设备),但是由于几个原因我不能.

1)我需要实时更新或每1 – 5分钟的连接哪些设备和哪些设备已断开连接的信息.

2)我在同一个网络上我的电脑很高的ping到我的iPhone(仍然不知道为什么).

现在我想使用在iOS上挂起或在Android背景下运行的Phonegap应用程序(在后台运行)中的地理位置来执行此操作.

任何帮助将不胜感激.

解决方法

首先要说的是创建一个在后台运行时接收位置更新的Phonegap应用程序是完全可行的,但不是简单的.我自己做了,并在Android和iOS平台上发布了应用程序.

如果您需要准确定位更新,建议您在目标设备上使用GPS接收器.在Phonegap中,您可以在请求位置更新时设置“highAccuracy”标志.当设备从GPS接收器接收到更新时,watchPosition()功能将提供新的位置信息,因此您可以使用它:

navigator.geolocation.watchPosition(successCallback,errorCallback,{
  enableHighAccuracy: true,timeout: 10000,maximumAge: 0
});

有关详细信息,请参阅Phonegap geolocation API documentation(请注意,在Android和iOS上进行此工作所需的权限).

为了让您的应用程序在Android或iOS的后台运行,您需要设置各自的本地开发环境:适用于Android的Eclipse,适用于iOS的XCode.您将无法使用Phonegap Build,因为在这两种情况下需要自定义设置才能使其工作.请参阅Phonegap platform guides如何做到这一点.

要使您的应用程序在Android的后台运行,您需要编写一个自定义的Android服务,或者您可以做我所做的,并使用Phonegap插件获取“部分唤醒”(see here),以使您的应用程序在背景和屏幕关闭时接收位置更新.请注意,此插件的original version已过时,不适用于更新版本的Phonegap,也不支持部分唤醒.但是,我已经更新并扩展了自己的使用:您可以在this question的答案中找到源代码.

为了让您的应用程序在iOS后台运行,您需要稍微不同的做些事情;你不需要一个插件,只是一个项目设置.

您可以手动编辑项目.plist,并使用“location”值添加“UIBackgroundModes”键,或者您的项目在XCode中打开,添加“必需的背景模式”键,值为“App register for location更新”.这将导致iOS在每次收到位置更新时触发您已经在watchPosition()中注册的JS回调函数. See here有关iOS项目键和background modes的更多信息.

希望这可以帮助!

以上是来客网为你收集整理的如何使用Phonegap跟踪设备位置(iOS和Android)设备全部内容,希望文章能够帮你解决如何使用Phonegap跟踪设备位置(iOS和Android)设备所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。