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

私は上記のコードを試しましたが、通知中に既にアプリケーションが開いているときに使用しました。私は、アプリが開かれていない間に発生したすべての通知を数えたいと思う。 方法はありますか?Ionic v1ローカル通知トリガーステータス

答えて

0

ローカルストレージにこれらの通知があり、デバイスの準備が整っています。現在の時刻と予定時刻を比較し、トリガーされた通知を計算します。

0
  1. アプリケーションが閉じられると、その後、通知はtriggedまたは示され

アプリケーションコードを維持するために実行することはできません(単に例えばアンドロイドとバックグラウンドに入れていません)最新のカウンタはlocalStorageまたはSqlite-DBに格納されています。

だからあなたの要求が満たされるように、カウンタを増加させる唯一の方法:

私はあなたが持っているアプリが

を開いていないしている間にトリガーされたすべての通知をカウントします使用する:

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

このためdoc状態として:

クリックイベントは、アプリが実行されていない場合はデバイスの後にも呼び出されます。

クリックイベントは、アプリが開いているかどうかに関係なく、通知がクリックされたときに常に呼び出されます。 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

    ありがとうございますが、これにより、ユーザーがクリックしなかった場合はカウントできません。 私はこの方法で解決策を見つけました。これらの通知はローカルのストレージに保存されています。私は現在の時刻とスケジュール時刻を比較し、トリガーされた通知を計算します。 ;) –

    関連する問題