2014-04-04 113 views
0

在我的iOS應用程序中,我使用setInterval獲取當前位置我能夠獲取當前位置。鈦工作室使用後臺服務獲取當前位置?

我的問題是,即使我的應用程序在進入後臺時也需要獲取當前位置並保存到數據庫中?

會有人指導我如何做到這一點?

我在app.js

Ti.App.addEventListener('pause', function(e) { 
     // register a background service. this JS will run when the app is backgrounded 
    //checking that switch is ON/OFF 
     if (Ti.App.Properties.getString('getLocation') == 'YES') { 
     //timer = setInterval(Titanium.Geolocation.addEventListener('location', locationCallBack1), 10000); 
     service = Ti.App.iOS.registerBackgroundService({ 
      url : '/mainWindows/bg.js' 
     }); 
     } 

}); 

在此先感謝代碼。

回答

0

你可能想在Appcelerator的論壇,看看這個帖子在:Location tracking in the background with iOS

它利用iOS的後臺服務,這是在docs很好的解釋:

// The app is transtioning to background here 
Ti.App.addEventListener('pause', function(e){ 
    // Register background service 
    bgService = Ti.App.iOS.registerBackgroundService({ url: 'bgService.js' }); 
    Ti.API.info("registered background service = "+ bgService); 
}); 
+0

mwfire ,謝謝你的迴應,即使我遵循了你給出的相同網址。在我的應用程序中,我有一個窗口來啓用/禁用位置,爲此,我使用了開關ON/OFF。如果我在同一個屏幕上獲得緯度和長度值,甚至選擇這個窗口,如果我最小化了我的應用程序,它正在工作。當我跳轉到其他窗口/屏幕或其他選項卡。我沒有獲得緯度和長期價值,請你幫我解決這個問題。在此先感謝 –

+0

您可能必須顯式更新您的tiapp.xml以啓用更長時間的Geolocation而不關閉。你可以在這裏找到更多的細節:http://docs.appcelerator.com/titanium/3.0/#!/guide/tiapp.xml_and_timodule.xml_Reference-section-29004921_tiapp.xmlandtimodule.xmlReference-UIBackgroundModes '位置' 設我知道它是否有效! – mwfire

+0

此外,設置'Ti.Geolocation.trackSignificantLocationChange = true;'可能是更好的方法來跟蹤背景中的地理位置。 http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.Geolocation-property-trackSignificantLocationChange – mwfire