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


関連記事

【iOS14】他のアプリを簡単に紹介できるSKOverlay

1 はじめに2 SKOverlayとは3 実装3.1 表示位置3.2 非表示3.3 delegate4 さいごに5 おすすめ書籍 はじめに 今回はiOS14から使用できるようになった、SKOverla ...

swift

[Swift]AVSpeechSynthesizerで音声再生

1 はじめに2 実装2.1 コード2.2 呼び出し3 さいごに はじめに こんにちは、nukkyです。 音声読み上げはちょっと今更感が漂いますが、案件で使用したばっかというのと、備忘録兼、初心者向けと ...

【Unity】URP対応のAssetのPrefabがピンク色になる件

1 はじめに2 レンダリングパイプラインとは2.1 ビルトインレンダリングパイプライン2.2 ユニバーサルレンダリングパイプライン3 URPの設定手順3.1 URPのインストール3.2 URPのアセッ ...

swift

SwiftでのDateクラスの煩わしさから解放されるSwiftDateを使ってみた

1 はじめに2 準備3 使ってみよう3.1 現在の取得3.2 パラメータの取得3.3 パラメータの操作3.4 文字列変換3.5 Dateの比較3.6 判定メソッド4 さいごに はじめに こんにちは、n ...

[React]MUIのコンポーネントを使用したUI作成(Button、Alert編)

1 はじめに2 MUI3 Button3.1 Buttonの実装3.2 Buttonの使い分け3.2.1 不可逆な操作など、より強調したい時の使い方4 Alert4.1 Alertの実装4.2 Ale ...

フォロー

blog-page_side_responsive

2019年12月
1234567
891011121314
15161718192021
22232425262728
293031  

アプリ情報

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