
こんにちは!株式会社メモリアインクのふくしまです〜
記事をご覧いただきありがとうございます!
この記事では、UserNotificationsフレームワークを活用しアプリアイコンにバッジを付ける方法を徹底解説していきます。
この記事を読んで分かること…
・アプリアイコンにバッジを表示する具体的なステップ
・表示されているバッジを消す方法
・バッジ表示で使われていた非推奨となったsetBadgeCount(_:withCompletionHandler:)
に変わる、setBadgeCount(_:withCompletionHandler:)
の使用方法
環境
Xcode15.2
Swift 5.9
setBadgeCount(_:withCompletionHandler:)とは
setBadgeCount(_:withCompletionHandler:)
は、iOS16以降利用可能なアプリのアイコンのバッジ数を更新するためのアップル標準のメソッドです。
バッジの数字の更新の実装
ローカル通知が送られてきて、通知を呼んだ際にバッジを消す(バッジの数字を0にする)方法を例に解説します。
前提
・通知機能を利用するためのinfo.plistの設定ができてること
・通知許可の取得を実装していること
・AppDelegateでUNUserNotificationCenterDelegateが使える状態であること
・通知が来た際に、アプリアイコンにバッジが表示されること
以下で、上記前提の実装方法について詳しく解説しているので、あわせてご確認ください!


実装
届いた通知を呼んだ際に、バッジを削除する方法は以下です。
extension AppDelegate {
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
let center = UNUserNotificationCenter.current()
print("タップされたよ")
center.setBadgeCount(0)
completionHandler()
}
}
コードの説明:
・UNUserNotificationCenterDelegate
を利用できるように設定されたAppDelegateを拡張(1行目)
・userNotificationCenter(didReceive response:)
はUNUserNotificationCenterDelegateのデリゲートメソッドで、届いたローカル通知がタップされた際に呼ばれます。
・setBadgeCount
メソッドで現在アイコンに表示されたバッジをリセットします。
以上で実装完了です。ビルドして、挙動を確認してみましょう。


まとめ
いかがでしたか?
バッジの操作は、アプリ開発において必要不可欠な技術なので、この記事がお役に立てたら嬉しいです!



この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
コメント