Xcode|iOS10で新しくなったUNUserNotificationCenterの使い方を調べてみた

20160703_001

iOS10からのNotificationが変わったぞと聞いたので、どの様に変わったのか調べたら・・・。すべてswiftでした(^^;
時代はswiftなんだと痛感しましたが、あまのじゃくHikaruappはObjective-Cでの使い方を調べてみました。

検証環境

Xcode 8 GM
iOS 10.0.2

UNUserNotificationCenter

iOS9までのNotificationと使い方はほぼ同じですが、完全に別APIとなりSingletoneとなったので同じ設計をすると失敗しそうです。コードはほぼ流用できますが新規設計と思っていた方が良いと思います。

今回は、単純に5秒後に通知を出す方法と追加になったアプリがフォアグランドにいても通知を出す方法の使い方の説明をします。

初期設定

UNUserNotificationCenterの使う種類を設定し、ユーザーに対して許諾画面を出します。
ここは、旧Notificationとほとんど同じですね。

ここで気を付けないといけないのがUNUserNotificationCenterは、singletoneでdelegeteの設定は後勝ちになります。

5秒後に通知を出す

5秒後に通知を出すように設定します。ここも旧Notificationとほとんど同じですね。

requestWithIdentifierで指定するStringは通知を管理するために使用します。重複すると後勝ちになります。

delegate

delegateで呼ばれるメソッドは2個あり、そのうちの一つは新しく追加された機能でアプリがフォアグランドにあっても通知を表示する事ができる様になりました。

ユーザーが通知をタップ後に呼ばれる

completionHandler()を呼ぶ前にゴニョゴニョ処理コードを書きます。

アプリがフォアグランドにある場合で表示する前に呼ばれる

通知をどの様に表示させるかcompletionHandlerに指定します。

まとめ

今回は、旧APIからの修正する場合での説明程度にしておきましたが、実は、変わっただけではありません。新しい機能が沢山盛り込まれました。

詳細はUserNotifications – Apple Developer Documentationに書かれています

それと、iOS10で動作しなくなるから早く治して!と言われるのですが、iOS10専用でビルドしなければ旧APIもiOS10で使用できます。ここ注意です。実機で動作させて納得させてあげましょう。

あわせて、こちらの記事もどうぞ

Xcode|iOS10のUNUserNotificationCenterで画像添付で表示させてみよう
こんにちは、あまのじゃくなHikaruapp(@hikaruapp)です。iOS10から新しくなった通知は、画像を添付することができるようになりました。画像だけではなく映像も可能です。これは、ちょっと世界が広がりますね!では、早速いじり倒していきましょう!もちろん、Objecti...

Github

サンプルコード – github

Xcode8 GM用でビルド確認してコミットしました。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする

スポンサーリンク