オタクをはなさないで

身の回りのオタクの恋愛観や、オタクコンテンツについて書くブログ

iOS10以降のNotificationCenterでforeground通知を実装する時の注意

(普段と全然違う内容)

こんなクソみたいな事に2時間ほど費やしたので書いておく。

http://swift-salaryman.com/unnotificationrequest.php

iOS10以降はNotificationCenterが刷新され、ローカル通知もプッシュ通知もここからアクセス出来るようになっている。UNUserNotificationRequestでリクエスト作って、それによってフォアグラウンド(アプリ実行中)の通知も可能になるのだが、全然表示されなくてめちゃくちゃハマった。

ちなみにcompletionHandlerにオプションを付ければ良いと書いているサイトが多いが、これは以下のように

completionHandler([.alert,.sound])

と、引数を入れよと言うことである。引数なしだと通知は出ないらしい(試してない)

でそれも重々承知で、それでも出なくて大変困っていたが理由がわかった。

当然といえば当然のことなのだが

ネイティヴ機能でのフォアグラウンド通知は

通知が

許可されていないと

出ない

あまりに当然・・・

よって、アプリケーション内でどうしても通知を出したい場合は、ユーザーが通知を許可していないと表示出来ないOSサポートの通知は使えない。結局他のライブラリなりに頼るしかないと言う結論だった。

同じように時間を潰す人が生まれないように、これを記録する。