2017-03-07 4 views
0

私は、クライアントが持つ残りのユニットの値を要求するために30分ごとに呼び出されるサービスを持つアプリケーションを構築しています。チェック中に、クライアントが指定されたユニットよりも低いユニットを持っている場合、アプリはユニットが低速で実行されているというローカル通知を送信します。これですべてがうまく動作します。Ionic Angularスケジュール通知を1回実行する

クライアントに90単位があり、上限が100であるとすると、アプリは通知をうまく送信しますが、30分後にもう一度チェックしてクライアントに85単位があることを確認すると、クライアントが再充電するまで繰り返し送ります。私が望むのは、一度送信する通知です。助けていただければ幸いです。以下は私のコードです。アプリはfalseになります名前flagと値でlocalstorageにキーを保存し、通知がクライアントに送信されたときに成功しますが、変更することができます開始されたときに

this.storage.get('AlertOn100').then((val) => { 
     if (val==true){ 
     if(res.power<100 && res.power>50){ 
      LocalNotifications.schedule({ 
      title: "Electricity is below 100 Units", 
      text: "Please recharge to avoid running out", 
      at: new Date(new Date().getTime() + 1 * 60 * 1000), 
      sound: null 
      }); 
       console.log("Units Below 100 . The guy should be notified") 
     }else{ 
      console.log("Don't send notification at 100 Units because the units are above that value") 
     } 
     } 
     }) 

答えて

0

あなたは、通知が送信されたりされていない識別するためにフラグを使用する必要がありますフラグをtrueにして、それが本当であれば次回は通知を送信しません。これはあなたなど

this.storage.get('AlertOn100').then((val) => { 
    var flag = localStorage.get("flag"); 
    if (val==true && !flag){ 
    if(res.power<100 && res.power>50){ 
     LocalNotifications.schedule({ 
     title: "Electricity is below 100 Units", 
     text: "Please recharge to avoid running out", 
     at: new Date(new Date().getTime() + 1 * 60 * 1000), 
     sound: null 
     }); 
     localStorage.set("flag", true); 
      console.log("Units Below 100 . The guy should be notified") 
    }else{ 
     console.log("Don't send notification at 100 Units because the units are above that value") 
    } 
    } 
    }) 

およびユーザー再充電がfalseにフラグを設定し、あなたのストレージタイプとのlocalStorageを置き換えるために働くことになります。

+0

おはよう、ありがとうございます。できます 。遅く返事を申し訳ありません。 – bobin56

+0

心配なし:) –

関連する問題