2016-04-06 10 views
0

私は、アプリがバックグラウンドで休眠状態になってデータベースに保存していても、ユーザーのジオロケーションを取得するつもりです。 私はkatzerのCordovaバックグラウンドプラグインを使用しています navigator.geolocation.getCurrentPosition内部でbackgroundMode.onactivate関数にアクセスしようとすると何も起こりませんが、ハードコードされた値を渡そうとすると、データがデータベースに格納されます。次Ionicアプリでのジオロケーションレポート

は私のコード

document.addEventListener('deviceready', function() { 
    // Android customization 
    cordova.plugins.backgroundMode.setDefaults({ 
     text: 'Doing heavy tasks.' 
    }); 
    // Enable background mode 
    cordova.plugins.backgroundMode.enable(); 

    // Called when background mode has been activated 
    cordova.plugins.backgroundMode.onactivate = function() { 
     console.log('inside background') 

     a(); 
    } 

    var a = function() { 
     console.log('a called') 
     navigator.geolocation.getCurrentPosition(function(pos) { 

      console.log('inside navigate'); 
      var data = { 
       Lati: '123456', 
       Longi: '132456', 
       //LoginID: JSON.parse(window.localStorage.getItem('LoginId')) 
       EmpCode: localStorage.getItem('LoginId') 
      }; 

      $http.post("https://app.sbismart.com/bo/ContactManagerApi/UpdateEmployeeLoc", data).success(function(rsdata, status) { 
       console.log('inside rsdata'); 
       console.log(data.Lati + "," + data.Longi); 
      }) 
     }, function(error) { 
      alert('Unable to get location: ' + error.message); 
     }); 
    } 


}, false); 

答えて

0
cordova.plugins.backgroundMode.onfailure = function(errorCode) { 
console.log(errorCode) 
};` 

およびuは約更新されますし、バックグラウンドでタイムアウト機能でlocationService機能を実行する必要があり、再度....それが失敗している理由を確認しています場所を確認し、以前に取得した場所から場所を確認します。このような 何か...

cordova.plugins.backgroundMode.onactivate = function() { 
     setTimeout(function() { 
      a(); 

     }, 5000); 
    } 

・ホープ、このことができます。

関連する問題