2016-07-13 17 views
1

ローカル通知から開いたときに特定のページを開くようにアプリケーションを設定しようとしています。私はdidReceiveLocalNotification通知情報を印刷するように設定しました。これは数日間働いていますが、私はxcodeからアプリケーションを起動すると、didReceiveLocalNotificationが呼び出され、最後のスケジュール通知(数時間前)の情報が出力されていることに気がつきました。didReceiveLocalNotificationは常にアプリケーション起動時に起動します

は、ここに私のコードです:私は、人々が同じローカル通知のために二度呼ばれるdidReceiveLocalNotificationを持っているいくつかのスレッドを見てきました

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { 
    // If app is opened from a local notification while running in background, print notification info. 
    if(application.applicationState == .Active){ 
     print(notification) 
     print("app opened from notification") 
    } 
} 

が、これは異なっています。アプリにログインするたびに呼び出され、4時間前に起動した通知に関する情報を表示します。 didReceiveLocalNotificationが、通知からアプリケーションを開いたときにのみ呼び出されるようにするにはどうすればよいですか?

何かすべての提案は高く評価されます。

答えて

3

あなたはこのようにそれをテストすることができます。

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { 

     print("notification - tapped") 

     if application.applicationState == UIApplicationState.Active { 
      print("App already open") 

     } else { 
      print("App opened from Notification") 

      } 
     }  
    } 

あなたは、アプリを閉じることができますが、それをテストするために終了しません。

+0

このコードを使用すると、通知がないのに私のアプリを実行するたびに「通知タップ」が表示されます。 – Abbey

+0

はい、通知を設定するたびに通知されるためです。必要に応じてその行を削除することができます。しかし、通知から開いた場合、「通知から開いたアプリケーション」が表示されます。 –

+0

私は今理解していると思う。私は.Inactiveを使用していたはずの.Activeを使用していました。ありがとうございました。 – Abbey

関連する問題