Tech iOS

UserNotificationsの使い方について

投稿日:2019年12月9日 更新日:

はじめに

普段の業務ではプッシュ通知の制御にまだUIApplicationDelegateのメソッドを使用しているのですが、近々UserNotificationsフレームワークに切り替える必要がありそうなので基本的な使い方についてまとめてみたいと思います。

UserNotificationsフレームワーク

iOS10以降に対応しているプッシュ通知のフレームワークです。
APNsを介したサーバーからの通知とローカル通知を実装する事が出来ます。
また、iOS9まではアプリがフォアグラウンド時に通知を受け取った場合は通知バナーを表示しませんでしたが、このフレームワークを使用するとフォアグラウンド時でも通知バナーを表示する事が出来ます。

基本実装

デリゲートの設定

UserNotifications をimportし、 UNUserNotificationCenterDelegate に準拠します。
下記例では、AppDelegateクラスの application(_:didFinishLaunchingWithOptions:) の中でデリゲートを設定しています。

ユーザー許可

今まで同様にまずユーザーにプッシュ通知の許可を求めるダイアログ表示を行います。
この際に、通知音やバッジの有無などのオプション設定を行う事が出来ます。
ユーザーが許可したらデバイストークンの発行処理を行います。

デバイストークン取得後

デバイストークンが発行されたら、トークンをプッシュ通知用サーバーに送る等の処理を行うと思います。
ここは今まで通りUIApplicationDelegateのメソッドで行います。
ちなみに、iOS13以降でトークン仕様が変更となっているので、詳細はこちらの記事を参照してみてください。

バックグラウンドで通知受信

バックグラウンドで通知を受信した時や通知バナーをタップした時は以下のメソッドが呼ばれます。
response から通知内容を取得する事が出来ます。
公式リファレンスによると、最後に completionHandler() を明示的に呼んであげる必要があるようです。

フォアグラウンドで通知受信

フォアグラウンド時で通知を受信した時は以下のメソッドが呼ばれます。
completionHandler() の引数で通知バナーの表示/非表示や通知音のON/OFFの設定を行う事が出来ます。
このメソッドを実装しないと、iOS9までと同様に通知バナー等は表示されません。

さいごに

iOS10以降のプッシュ通知では他にサイレントプッシュやNotification Service Extensionを利用したリッチプッシュなどの機能もあるので、機会があればこちらも記事にしたいと思います。

おすすめ書籍

詳解 Swift 第5版 [改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 絶対に挫折しない iPhoneアプリ開発「超」入門 第8版 【Xcode 11 & iOS13】 完全対応

blog-page_footer_336




blog-page_footer_336




-Tech, iOS
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

[Swift]Alamofireを使ってファイルをDLしてみる

1 はじめに1.1 前提条件2 今回やること3 準備4 実装4.1 DLしたファイルへのアクセス5 さいごに はじめに こんにちは、nukkyです。 みなさんSwiftでの通信ライブラリは何を使ってま ...

ReactNative環境構築[Android/iOS]

1 はじめに2 準備2.1 HomeBrewをインストール2.2 node.jsのインストール2.3 Watchmanのインストール2.4 React Native CLIのインストール2.5 サンプ ...

swift

[Swift]UITableViewのセルの入れ替えが簡単に実装できるライブラリ「SwiftReorder」

1 はじめに2 準備3 実装4 さいごに はじめに こんにちは、nukkyです。 今回は、UITableViewでセルを入れ替えたい際に、ドラッグ&ドロップ操作を簡単に実装できるライブラリ「S ...

UnityのiOSネイティブをSwiftで書く

1 はじめに2 UnityのiOSネイティブとは?3 今回作るもの4 必要な構成5 unity-swiftの導入6 必要な機能の実装6.1 Swiftクラスの作成6.2 Objective-C++でU ...

iOS13で申請するために押さえておきたいポイント

1 はじめに2 presentViewController3 DeviceToken4 Launch Storyboard5 Dark Mode6 Sign In with Apple7 さいごに8 ...

フォロー

blog-page_side_responsive

2019年12月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。