유니티 내장 로컬 푸쉬 기능
- iOS에서만 가능, Android는 직접 개발하던가 Plugin 사용
- iOS에서만 가능, Android는 직접 개발하던가 Plugin 사용
먼저 등록을 해주고 ( 등록 안하면 작동 안함 )public void InitNotification()
{
 #if UNITY_ANDROID
 #elif UNITY_IOS
 UnityEngine.iOS.NotificationServices.RegisterForNotifications(
  UnityEngine.iOS.NotificationType.Alert |
  UnityEngine.iOS.NotificationType.Sound
 );
 #endif
}시간을 정해서 등록해준다.( 3일동안 접속 안할 경우 알림이 오게 한다면 )
public void ScheduleNotification()
{
 //Affer 3 Day
 string _body01 = "다시 시작해볼까요?";
 #if UNITY_IOS
 UnityEngine.iOS.LocalNotification notiWake = new UnityEngine.iOS.LocalNotification();
 DateTime theTime_Wake = DateTime.Now;
 theTime_Wake = theTime_Wake.AddHours(24*3); 
 Debug.Log("theTime_Wake:"+theTime_Wake);
 notiWake.fireDate = theTime_Wake;
 notiWake.alertAction = "타이틀";
 notiWake.alertBody = _body01;
 notiWake.soundName = UnityEngine.iOS.LocalNotification.defaultSoundName;
 UnityEngine.iOS.NotificationServices.ScheduleLocalNotification(notiWake);
 #elif UNITY_ANDROID
 #endif
}취소 함수를 만들어서 앱이 중지되거나 종료 될때 스케쥴을 등록하고 앱이 다시 실행되면 알람을 모두 취소시킨다.
public void CancelAllNotification()
{
 #if UNITY_ANDROID
 #elif UNITY_IOS
 UnityEngine.iOS.NotificationServices.ClearLocalNotifications();
 UnityEngine.iOS.NotificationServices.CancelAllLocalNotifications();
 #endif
}
void OnApplicationQuit() {
 CancelAllNotification();
 ScheduleNotification();
}
void OnApplicationPause( bool pauseStatus )
{
 if( pauseStatus )
 {
  CancelAllNotification();
  ScheduleNotification();
 }
 else
 {
  CancelAllNotification();
 }
}
댓글