기본 콘텐츠로 건너뛰기

[Unity3D] 유니티 내장 로컬 푸쉬 기능

 유니티 내장 로컬 푸쉬 기능
 - 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();
 }
}


댓글

이 블로그의 인기 게시물

[InAppBilling] Error checking for billing v3 support. (response: 3: Billing Unavailable)

오랫만에 인앱결제를 붙이는 작업을 진행하는데 무조건   Error checking for billing v3 support. (response: 3: Billing Unavailable)  이런 에러를 계속해서 쏟아내서 반나절 이상 고생했다. 결론은 구글 개발자 콘솔에서  정보를 전부 다 올리고 알파테스트나 베타테스트로 설정하고 출시까지 해야  정상적인 상품리스트를 읽어 오기 시작하였다.  ㅠㅠ 이 글이 많은 사람들의 시간을 아꼈으면 합니다. ㅎㅎㅎ