2017-12-22 26 views
1
$rootScope.$on('$cordovaLocalNotification:trigger', function(event, notification, state) { 
    //code 
}); 

위의 코드를 시도했지만 알림이 표시되는 동안 앱이 이미 열려있는 경우에 한합니다. 앱을 열지 않은 동안 실행 된 모든 알림을 계산하고 싶습니다. 어떨까요?Ionic v1 로컬 알림 트리거 상태

답변

0

나는 로컬 저장소에 이러한 알림을 준비 했으므로 장치 준비가되어 있고 현재 시간을 예정된 시간과 비교하고 트리거 된 모든 알림을 계산하고 그렇지 않은 것으로 계산합니다.

0
  1. 응용 프로그램이 닫히면 다음 통지가 따라 트리거 또는 표시됩니다
  2. ,

응용 프로그램 코드는 계속 실행할 수 없습니다 (단지 예를 들어 안드로이드와 배경에 넣어하지 않음) 최신 카운터는 localStorage 또는 Sqlite-DB에 저장됩니다 (예 :).

그래서 귀하의 요청이 충족되도록 카운터 증가 할 수있는 유일한 방법 : 나는 응용 프로그램이

당신은이

을 열지 않은 동안 트리거 된 모든 알림을 계산 할

을 사용 :

$rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) { 
    // increase counter in your localStorage or Sqlite-DB here 
}); 

을하기 때문에이 doc 상태로 :

앱이 실행 중이 아니면 deviceready 후에도 click 이벤트가 호출됩니다.

앱이 열려 있든 없든 알림을 클릭하면 클릭 이벤트가 항상 호출됩니다. iOS에서


앱이 열려되지 않았거나이

  • 앱이 시작되는 동안

    • 를 클릭 한 경우에만 알림을 계산하고자하지만, 사용자가 응용 프로그램 외부에있는 경우 (관련 있기 때문에 app-code는 백그라운드에 넣거나 닫을 때 실행되지 않습니다.

    당신은이 방법으로 작업을 수행 할 수 있습니다

    $ionicPlatform.ready(function() { 
    // .... 
        $rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) { 
         if(state === "background"){ 
          console.log("increase counter"); 
         } 
        }); 
        // or if the first does not fire like with me, then use this instead: 
        cordova.plugins.notification.local.on('click', function (notification, state) { 
         if(state === "background"){ 
          console.log("increase counter"); 
         } 
        }); 
    // .... 
    }); 
    

    희망이뿐만 아니라 도움이됩니다.

  • +0

    감사합니다. 그러나 이것으로 사용자가 클릭하지 않으면 계산할 수 없습니다. 이 방법으로 솔루션을 찾았습니다. 로컬 저장소에 이러한 알림이 있습니다. 장치 준비가되었습니다. 현재 시간을 예정된 시간과 비교하고 트리거 된 모든 알림을 계산합니다. ;) –