2017-08-15 9 views
0

私のアプリは、UNUserNotificationCenterDelegate::didReceiveデリゲートを使用して日付に基づくローカル通知がトリガーされたときにタイマーを開始します。通知をタップしなくてもローカル通知のトリガーが検出されることはありますか?

通知がトリガーされたときにアプリが既に開いている場合は、通知をタップしなくても、その時点でタイマーを自動的に開始します。

これは可能ですか?

例えば:

私は、午後3時の通知を設定し、その時点で午後3時30分に期限切れになる30分のタイマーを(これは正確に午後3時開始すべきである)、起動したいです。
ユーザーが10分後の午後3時10分に通知をタップすると、タイマーは3:40に期限切れになります。 これは、ユーザがタップしたときではなく、通知がトリガされたときにタイマーを開始したいからです。

+0

方法userNotificationCenter(_:willPresent:通知は、フォアグラウンドアプリに配信されたときにwithCompletionHandler :)呼び出されます。参考:https://developer.apple.com/documentation/usernotifications/unusernotificationcenterdelegate/1649518-usernotificationcenter – Hooda

+0

@Hooda:私は受け入れることができるようにこれを回答として提供できますか?ありがとう。 – Kobe

+0

完了。寄付いただきありがとうございます。 – Hooda

答えて

1

メソッドuserNotificationCenter(_:willPresent:withCompletionHandler :)は、通知がフォアグラウンドアプリに配信されたときに呼び出されます。

出典:Link

0

このメソッドを使用し、あなたのタイマーコンセプト

application:didReceiveLocalNotification: 

を使用するためしかし、あなたのアプリがバックグラウンド状態にあるとき、およびローカル通知が来た場合、はい、あなたは任意のメソッド呼び出しを受信しません。

+0

どういう意味ですか?通知をタップすると呼び出されます – Kobe

+0

はい、あなたが知っている限り、あなたのアプリがバックグラウンド状態にあり、ローカル通知が来たら、あなたはメソッド呼び出しを受け取りません。 –

+0

アプリがフォアグラウンドにあるとき、このメソッドは自動的に呼び出されます –