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】 完全対応

page_footer_300rect




page_footer_300rect




-Tech, iOS
-,

執筆者:


comment

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

CAPTCHA


関連記事

[Swift]忘れられがちなSFSafariViewControllerについて

1 はじめに1.1 前提条件2 SFSafariViewControllerとは2.1 SFSafariViewControllerの特徴2.2 iOS11からのCookie同期について3 SFSaf ...

swift

SwiftでPDFを表示する(iOS11以前対応版)

1 はじめに1.1 前提条件2 実装3 さいごに はじめに こんにちは、nukkyです。 SwiftでPDFを表示したい場合iOS11以降ならPDFKitがありますが、自分の様にまだ11以前のOSにも ...

Swift Chartsライブラリでボリンジャーバンドを描画してみる。

1 はじめに2 ボリンジャーバンドとは2.1 ライブラリの導入2.2 描画の準備3 ボリンジャーバンドを描画する3.1 CombinedChartViewの設定3.2 CombinedChartVie ...

iOSでFirestoreを使ってみた

1 はじめに2 Cloud Firestoreとは3 仕組み3.1 ドキュメントとは3.2 コレクションとは3.3 サブコレクションとは4 データの保存4.1 新規保存4.2 追加4.3 サブコレクシ ...

ReactNativeデータ永続化

1 はじめに2 データ永続化の方法3 AsyncStorage4 react-native-async-storage4.1 インストール4.2 実装5 Realm5.1 インストール5.2 redu ...

フォロー

follow us in feedly

page_side_300rect

2019年12月
« 11月 1月 »
1234567
891011121314
15161718192021
22232425262728
293031 

アプリ情報

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