-
[NATIVE, ANDROID] Local Notification(로컬 알림) 유니티 플러그인Develop/Plug-in 2019. 1. 5. 20:50반응형
개요
유니티에서 네이티브 알림 기능을 iOS 만 제공하고 있습니다.안드로이드에서 로컬 알림을 이용하려면 플러그인을 직접 제작하거나 다른 사람이 만들어 둔 플러그인을 사용해야 합니다.이번에 다소니닷넷에서도 로컬 알림을 사용하게 되어 직접 제작을 하였습니다.유니티 플러그인
사용방법
1. 알림 아이콘 적용
안드로이드의 최신 버전에서는 작은 크기의 알림 아이콘과 큰 크기의 알림 아이콘 이렇게 두가지를 사용하고 있는데요.그 중 작은 크기의 알림 아이콘은 필수 아이콘으로 꼭 적용해야합니다.아이콘 적용 방법은 간단합니다.Project Folder/Assets/Plugins/Android/DasonyNotification/res/drawable/
위 경로에 아이콘 이미지를 추가하신 후 메소드 호출 시 아이콘 이름만 입력하시면 알림에 적용됩니다.안드로이드 이미지는 drawable 폴더의 이름에 따라 해상도(dpi) 별로 호출이 가능한건 알고 계시죠? 같은 방법으로 이미지를 추가하시면 됩니다.해상도(dpi) 폴더와 예제 아이콘이 플러그인에 포함되어 있으므로 이미지 추가 혹은 교체 후 사용하시면됩니다.1-1 해상도(dpi) 별 drawable 폴더명
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi
2. 로컬 알림 설정
로컬 알림을 사용할 스크립트 상단에 플러그인의 클래스를 사용할 수 있도록 아래와 같이 선언합니다.using Dasony.Libs;
2-1 초기화
로컬 알림 플러그인은 싱글톤으로 제작되어 LocalNotification 클래스의 Instance 속성을 호출하면 자동으로 초기화됩니다.public class Test : MonoBehaviour { LocalNotification notification; void Start () { notification = LocalNotification.Instance; } }
2-2 알림 보내기
NotificationData.Builder 클래스를 이용하여 알림을 생성합니다.알림을 생성할 때 SetDelay를 이용해 지연시간을 넣어주면 스케쥴 알림으로 적용됩니다.public class Test : MonoBehaviour { ... void SendNotification () { NotificationData.Builder builder = new Notification.Builder(1) // 정수형 알림 id .SetSmallIcon ("notify_icon") // 위에서 추가한 아이콘의 이름 .SetContentTitle("제목 입력") .SetContentText("본문 입력") .SetAutoCancel(true) .SetDelay(30000); // 30초 후에 알림 옴, 단위는 밀리초 notification.SetLocalNotification(builder.Build()); // 알림을 보냅니다. } }
2-3 알림 취소 (스케쥴 알림 이용 시)
스케쥴 알림(지연시간 추가) 을 등록 후 알림이 수신되기 전에 알림을 취소할 수 있습니다.# 1개의 알림 취소notification.CancelScheduleNotification(1); // 알림 생성 시 입력했던 정수형 알림 id
# 모든 알림 취소notification.CancelAllScheduleNotification();
2-4 수신된 모든 알림 없애기
이미 수신된 알림을 없애지 않으면 앱 아이콘에 뱃지(숫자 표시)가 없어지지 않을 수 있습니다.이때 알림을 없애는 메서드를 호출하면 됩니다.notification.ClearAllLocalNotifications();
3. 레퍼런스
Notification (Dasony.Libs.Notification)
알림을 설정하거나 취소, 제거 등을 실행해주는 클래스입니다.싱글톤으로 제작되었으며, Instance 속성을 호출하면 생성자가 자동으로 초기화됩니다.정리
# Public 생성자Notification ()
사용자가 직접 생성자를 호출 할 수 없습니다.
Notification.Instance 를 이용하여 메서드를 호출해야 합니다.
# Public 메서드TestNotification(long delay)
알림이 정상 동작하는지 테스트 할 때 호출하기 위한 용도입니다 .
제목 : Test
내용 : Test Notification!
위의 내용으로 알림이 설정됩니다.
delay 값을 입력하면 스케쥴 알림으로 설정됩니다.
SetLocalNotification (NotificationData data)
NotificationData로 생성된 알림 데이터를 이용하여 로컬 알림을 설정합니다.
CancelScheduleNotification (int id)
스케쥴 알림으로 설정된 알림을 취소 처리합니다.
id는 NotificationData를 생성할 때 입력한 id를 사용합니다.
CancelAllScheduleNotifications ()
스케쥴 알림으로 설정된 모든 알림을 취소 처리합니다.
ClearAllLocalNotifications ()
호출 처리된 모든 알림을 제거합니다.
이때 앱 아이콘에 노출된 배지도 함께 제거됩니다.
NotificationData.Builder (Dasony.Libs.NotificationData.Builder)
알림을 생성시킬 때 사용할 수 있는 속성들을 정의해주는 보조 클래스입니다.NotificationData 클래스는 독립적으로 생성할 경우 기본 속성으로 생성되며, 속성 값을 변경할 수 없도록 제작되었습니다.속성 값을 변경하여 NotificationData를 정의하기 위해서는 NotificationData.Builder 클래스를 이용해야합니다.정리
# Public 생성자NotificationData.Builder (int id, ChannelData channelData = null)
id : 정수형 알림 id
channelData : 최근 안드로이드 라이브러리에 추가된 내용으로 알림을 그룹화 함 (null 가능)
# Public 메서드SetContentTitle (string value)
일반적인 알림의 제목을 설정합니다.
SetContentText (string value)
일반적인 알림의 내용을 설정합니다.
SetContentTicker (string value)
알림 수신 시 노치에 표시되는 한 줄 내용을 설정합니다.
SetSmallIcon (string iconName)
알림에 노출 될 작은 크기의 아이콘을 설정합니다. (필수)
SetLargeIcon (string iconName)
알림에 노출 될 큰 크기의 아이콘을 설정합니다. (선택)
SetColor (Color32 color)
알림에 노출 되는 작은 크기의 아이콘의 색상을 변경합니다.
SetBadgeIconType (int type)
앱 아이콘 위에 노출되는 배지의 형태를 설정합니다.
SetPriority (int priority)
알림의 우선 순위를 설정합니다.
SetDelay (long milliSecond)
알림을 지연시킵니다. 흔히 스케쥴 알림이라고 말합니다.
SetAutoCancel (bool value)
true로 설정할 경우 사용자가 알림을 터치하면 노치에서 자동으로 알림이 제거됩니다.
마치며
제가 게임을 개발하면서 필요한 메서드만 적용한 상태입니다.혹시 추가로 필요한 기능이 있으시면 댓글로 남겨주시면 업데이트를 해보도록 하겠습니다.반응형'Develop > Plug-in' 카테고리의 다른 글
[NATIVE, ANDROID] Android 6.0 (마쉬멜로우) 이상에서 Permission (시스템 권한) 체크 및 유니티 플러그인 (7) 2018.11.08