2017-09-06 10 views
0

私はローカル通知を発生させ、それに対するアクションを表示する方法を知っています。ユーザーが操作をクリックすると、以下の方法で処理できます。速報で通知が届いたのはいつか分かりますか?

func userNotificationCenter(_ center: UNUserNotificationCenter, 
didReceive response: UNNotificationResponse, withCompletionHandler 
completionHandler: @escaping() -> Void) { 
    // Do something here 
    if response.notification.request.content.userInfo["backUp"] { 
    doBackUpHere() 
    // Do other methods 
    } 
} 

ただし、私の状況は少し異なります。私は、それをクリックする前に通知を出したとき、またはそのアクション(アプリケーションはフォアグラウンドまたはバックグラウンド)でいくつかの機能を実行する必要があります。他の方法は、ユーザーが通知をクリックしたときに実行さ

func notificationRaised (notification: Notification){ 
    // to do if notification is 
    if notification.userInfo["backUp"] { 
    doBackUpHere() 
    } 
} 

更新

より良いが提案私の理解する@Sergey答え、私たちのコメントを参照してください。

答えて

1

あなたの質問を正しく理解している場合は、ユーザーからの入力なしに通知が届いたときに対応したいと考えています。もしそうなら、あなたはsilent push notifications in iOSを見てみることをお勧めします - 残念ながら - ユーザーインターフェースには全く表示されません。

タイマーでローカル通知を試すこともできますが、ユーザーが通知やそのいずれかの操作をタップするときにのみコードを実行できることに注意してください。スケジュールされたローカル通知が表示されます。

+0

はい、私の質問を正しく理解しています。 [Appleのドキュメント](https://developer.apple.com/library/content/documentation/General/Conceptual/WatchKitProgrammingGuide/BasicSupport.html)は、それがサーバー通知のためのものだと言います。私は地元の通知が必要です。私は自分の目標ではないプッシュ通知をオンにする必要があります。 –

+0

@AmirShabaniはそれを手に入れました。実際に**通知を送信したときにあなたのアプリが生きているかどうかわからないので、基本的にはここでは何もできません**。 –

+0

通知が発生したときを理解する方法がないということですか?通知がいつ発生したかを知るのに役立ちます。 androidの放送受信機のように –

0

聞いたことがありますか?'サイレントプッシュ通知'?私はそれがまさにあなたが探しているものだと思う;)あなたは、その通知を得ることができます、あなたのものをし、必要に応じてローカル通知を表示します。

+0

ありがとうございました。しかし、サイレントプッシュ通知を使用したことで、自分の目標ではないプッシュ通知を使用する必要があることがわかりました。サイレントプッシュ通知のための良いリソースがありますか? –

関連する問題