エンジニア戦記

Unityでローカルプッシュしたい

f:id:nuakam:20180124180536j:plain

スマホにはローカル通知という機能がある。
こいつがなかなかのクセモノ。


そもそもローカル通知とはどういったものなのか軽く解説。



"こう…スマホにメッセージがあったときピコーン!ってメッセージ出てくるやつ"
引用元 : 俺. 2018/02/02


体力制ソシャゲで時間で全回復したとき、「体力回復しました」とか

お知らせ更新あったとき、「新しいお知らせです」とかって通知するやつです。

通知処理

通知にも色々種類があって

1.ローカル通知(オフライン)
2.リモート通知(オンライン)

このローカルとリモートは通知の形態。

1.バッチ通知 (アプリアイコンに赤い●が付いたり、数字が付いたりするやつ)
2.プッシュ通知(なんかロック画面でピコーンって透明の枠出るやつと、上からニュッって降りてくるやつ)

これらは通知方法。


そこら辺をとても分かりやすく解説した画像を見つけたので掲載。

f:id:nuakam:20180202182110p:plain
引用元 : 俺(プッシュ通知って単語出てこなかった当時). 2018/02/02

図にしたら理解しやすくてイイネ!!!


リモートは、サーバーからメッセージを送ると端末にピコーンと通知してくれる。
ローカルは、x秒後にピコーンと通知を出せと設定する。


タイトルのローカルプッシュとは、サーバーを介せずにゅっと出したいってこと。

通知はネイティブ処理

これを実装するにあたって何よりの問題は、プッシュ通知は端末依存の機能だということ。
いわゆるカメラや、バイブレーション、GPSといったものと区分としては同じで、端末によって対応が違う。


つまりUnityで呼び出せず、ネイティブで実装してプラグインとして呼び出す必要がある。
(何故かIOSだけはスクリプトパッケージがある:NotificationServices。)


IOSはいいとしてAndroidは手書きが必要
Asset買えばいいんだけどね…
なかなか買えない、カネがない。


今回はプッシュ通知をやりたかったので、

解決にはGitに上げてくださっていた、Unitypackageを使った。
smartgames.hatenablog.com


ローカル通知はx秒後でしか指定できないので、時間×60×60…みたいな計算が必要なことに注意。
AndroidManifest.xmlが競合してるから書き換えなきゃ…

プライバシーポリシー 免責事項