【Swift4.2】プッシュ通知からアプリを起動して処理したい場合

ログイン後だったり、画面が完全に構築されてからプッシュ通知のデータを扱いたい場合、
NotificationQueue を使うと安定するのでメモしやす。
まずは挙動が掴めるよう簡単なコードを。

7行目の postingStyle: に PostingStyle.whenIdle を指定することで、
アプリが何もしていない(アイドル)状態になったら通知されます。

上記のコードのアイドル状態は viewDidAppear(_:) が抜けた後なので、
その前に addObserver(forName:object:queue:using:) すると、ちゃんと call. がログに表示されます。

※公式ドキュメントはこちらです。

これをプッシュ通知がタップされた時のメソッドに書けば、安定して動くと思います。
ただ、プッシュ通知関連のメソッドは非推奨になったものもあるので、実装する際は要確認です。
ちなみに僕は以下のメソッドを使っています。

違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )

【2019.04.21 追記】
あと、ここでは Notification.Name をそのまま使ってますが、普段は extention で定義してます。
内容が少し違ってくるので、ここに別記事で載せます。

コメント