スマゲ

スマートなゲームづくりを目指して日々精進

Unityで通知アイコンのバッジを削除する(iOS)

Unityでプッシュやローカル通知をするときにバッジをつけられますが、それを消す具体的なメソッドがまだ内容なのでプラグインとして作りました。

プラグインの作り方は以下を参照
UnityでiOSのプラグインを作成する - スマゲ

まずはバッチを消すメソッドを obj-c で書きます。名前は適当に IconBadgeCleaner.mとします。

void CleanIconBadge_(){
    [UIApplication sharedApplication].applicationIconBadgeNumber = -1;
}

内部処理は一行ですみました。
このファイルを Assets/Plugins/iOS 以下に配置して呼び出しメソッドを実装すれば完了です。

using UnityEngine;
using System.Runtime.InteropServices;

public static class IconBadgeCleaner {

    [DllImport("__Internal")]
    static extern void CleanIconBadge_();

    public static void Clean(){
#if UNITY_IOS
        CleanIconBadge_();
#endif
    }
}

あとはアプリ起動時、復帰時などにCleanメソッドを呼べばバッジが消えるようになります

まとめ
簡単にバッジを削除できた、そのうちAndroidのバッジ削除機能も作るかもしれないです


sanukin39/IconBadgeCleaner · GitHub