当前位置 : 主页 > 手机开发 > ios >

Phonegap iOS与背景中的地理位置

来源:互联网 收集:自由互联 发布时间:2021-06-11
我已经在PhoneGap的背景下阅读了一些关于地理位置的讨论,但我仍然遇到了问题. 我正在开发一个使用地理定位服务的应用程序. 在应用程序处于前台的IOS上,一切正常.当应用程序进入后台
我已经在PhoneGap的背景下阅读了一些关于地理位置的讨论,但我仍然遇到了问题.

我正在开发一个使用地理定位服务的应用程序.
在应用程序处于前台的IOS上,一切正常.当应用程序进入后台时(大约30-40分钟后),但地理编码停止工作,我不再获得更改位置事件.在后台期间,应用程序成功地将JSON的时间戳和lng / lat连接到我的远程服务器,所以我知道它在这段有限的时间内正在工作.

我的配置是:

框架工作:PhoneGap 2.5

设备:iOS(在4和4,iPhone和iPad4上测试)

iOS版本:7.0.4

Xcode:版本5.0.2(5A3005)

插入:
Cordova的PowerManagement插件(2.0)
作者:Wolfgang Koller – GOFG Sports Computer
https://github.com/purplecabbage/phonegap-plugins/tree/master/iOS/PowerManagement

startWatch功能:

function onDeviceReady() {
    startWatch();
    function startWatch() {
        var options = { enableHighAccuracy: true, timeout: 3100, maximumAge: 0 }; 
        watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);            
        timerID = setInterval ( updateLocation, 3000 ); 
    }
.
.

App-info plist包括:

"App registers for location updates" under "Required background modes"
&
<key>UIBackgroundModes</key>
<array>
    <string>location</string>
</array>

config.xml包括:

<plugin name="PowerManagement" value="PowerManagement" />

问题:

我想知道有没有办法确保PhoneGap中的JavaScript在应用程序处于后台时不断运行?

我是否需要设置Wakelock获取/发布以确保Powermanagement插件在iOS中高效工作?
有人可能建议使用不同的插件或配置/代码我可能错过了吗?

干杯,
韦恩加德纳
悉尼,澳大利亚

试试我的.适用于iOS和Android

该插件具有调试模式,可以为其生命周期事件(位置变化,退出静止区域等)发出声音,这对于在现场测试时获得即时反馈非常有用.

https://github.com/transistorsoft/cordova-background-geolocation-lt

网友评论