テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

ローカル通知を使う

Unityでローカル通知を試してみた。

スクリーンショット 2012-06-18 22.28.42

■ローカル通知とは

ローカル通知は、プッシュ通知とか呼ばれることのある「通知」の機能。

アプリを終了しても、一定時間経つと通知してくれるアレだ。
こいつの特徴は3つ。
1.アプリが終了していても通知メッセージを表示する
2.通知をタッチすればアプリが起動する
3.メッセージはアプリが設定する

iPhoneiPadの可能性をさらに広げる「ローカル通知」(ASCII.jp)
http://ascii.jp/elem/000/000/659/659504/

ちなみに、リモート通知ってのもある。

こっちは外部サービスを使って端末の通知を呼び出す仕組みで、
通知の送信時に、通知するメッセージを好きなように設定できる。
これはアップデートの通知とか向けで、有料サービスっぽい(無料のもあるにはあるみたい)。

■ローカル通知の使い方

ローカル通知を使うには、2つのコードを書く必要があるみたい。
1.通知のメッセージを作成してiosに登録する
2.アプリ起動時に通知を削除する

1.通知メッセージを作成
まず通知メッセージの作成、これは[LocalNotification]クラスを作る。
このクラスでは、通知時のメッセージや音、バッジを設定できる。
バッジは、通知時にアイコンに付く数字の名前らしい(?)。

下の例では、10秒後に"hello world"の通知を呼ぶ。
あとアプリに1のバッジをつける。


LocalNotification l = new LocalNotification();
l.applicationIconBadgeNumber = 1;
l.fireDate = System.DateTime.Now.AddSeconds(10);
l.alertBody = "hello world";
NotificationServices.ScheduleLocalNotification(l);

LocalNotification(Unity Script Reference)
http://unity3d.com/support/documentation/ScriptReference/LocalNotification.html


2.アプリ起動時に通知を削除する

詳しくはわからないけど、手順には書いてあるので必要なんじゃないかと思う。
通知が0件より多ければ、ローカル通知を全部破棄する


if( NotificationServices.localNotificationCount > 0)
{
NotificationServices.ClearLocalNotifications();
}

NotificationServices(Unity Script Reference)
http://unity3d.com/support/documentation/ScriptReference/NotificationServices.html


■現状の問題点

現在この方法には「バッチを削除出来ない」問題がある。
一度バッジ付きの通知を発行すると、アプリを再インストールしても
バッジが消えない謎の呪いだ。

一応通知の全削除を試してみたけど、中々消えない。
どうしたもんやら

一応は解決

[Unity3D]続・ローカル通知を使う
http://terasur.blog.fc2.com/blog-entry-185.html