2016-05-16 86 views
4

我正在後臺運行一個進程,並且在最近的應用程序關閉應用程序之前我需要將其關閉(向右滑動方形按鈕)。處理應用程序的事件已關閉(Ionic)

該應用程序使用插件來獲取當前位置https://github.com/mauron85/cordova-plugin-background-geolocation和另一個使背景中的任務。後臺插件調用位置插件,如果在位置存儲過程中滑動應用程序,則通知將保留在抽屜中。

if(window.cordova && window.cordova.plugins.Keyboard) { 

     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 

     cordova.plugins.backgroundMode.enable(); 

     cordova.plugins.backgroundMode.onactivate = function() { 

     if(promise != []){ 
      $interval.cancel(promise); 
     } 
     promise = $interval(geolocation_function, 25000); 
     }; 

     cordova.plugins.backgroundMode.ondeactivate = function(){ 
     if(promise != []){ 
      $interval.cancel(promise); 
     } 

     promise = $interval(geolocation_function, 25000); 
     } 
    } 

地理定位函數調用到後臺插件。我使用這個https://github.com/katzer/cordova-plugin-background-mode,我不知道如何控制這個。

我有什麼功能可以用嗎?謝謝。

+0

我看到的幾個問題;如果你用離子形式運行它,你應該把你的服務調用包裝在'$ deviceReady'中;我假設'promise'是一個'$ q'對象,但沒有看到它的聲明,我不能確定。 –

+0

我解決了使用window.onunload並關閉那裏的服務。我記住你的建議,我保證會改善我的代碼。非常感謝 :) –

回答

-1

我用這個事件來關閉該服務的應用程序被關閉

之前
.run(function(){ 
window.onunload = function(){ 
    backgroundGeoLocation.stop(); 
} 

})

0

你可以把此三個碼在你的控制器:

$scope.$on('$ionicView.beforeLeave', YOURFUNCTION);

到在用戶離開頁面之前收聽。

$ionicPlatform.on('pause', YOURFUNCTION); 
$ionicPlatform.on('resume', YOURFUNCTION); 

聽當用戶暫停和恢復應用程序:

相關問題