Unity SDKでpush通知受信時の処理をカスタマイズする(iOS)
unity側でpush通知を受け取る
下記のサンプルの様に、MonoBehaviourを継承したComponentにて、
UnityEngine.iOS.NotificationServices
を使用することにより、
unity側で受信時の処理を実装することが可能です。
UnityEngine.iOS.NotificationServices
について詳しくは、下記を御覧ください。
https://docs.unity3d.com/ja/current/ScriptReference/iOS.NotificationServices.html
using System.Collections; using System.Collections.Generic; using UnityEngine; public class GrowthbeatSampleComponent : MonoBehaviour { bool isRemoteNotificationProcessing = false; void Update () { #if UNITY_IPHONE // 起動中の受信処理 if (!isRemoteNotificationProcessing && UnityEngine.iOS.NotificationServices.remoteNotificationCount > 0) { // 複数回処理されないために処理中のフラグを立てる isRemoteNotificationProcessing = true; UnityEngine.iOS.RemoteNotification[] notifications = UnityEngine.iOS.NotificationServices.remoteNotifications; foreach (UnityEngine.iOS.RemoteNotification notification in notifications) { // 通知受信時の処理 Debug.Log("alert body: " + notification.alertBody); Debug.Log("user info: "); foreach(string key in notification.userInfo.Keys) { Debug.Log("key: " + key + ", value: " + notification.userInfo[key]); } } // 処理済みのRemoteNotificationsは削除 UnityEngine.iOS.NotificationServices.ClearRemoteNotifications(); // 処理が終わったらフラグを開放 isRemoteNotificationProcessing = false; } #endif } }