Flutter

[Flutter] flutter local notification

에릭 Kim 2022. 9. 27. 16:24
반응형

서비스를 개발하면서 푸쉬 알림 기능이 필요하였습니다. 원래는 fcm(firebase cloud messaging)를 사용하려고 했는데, 구현하고자 하는 기능이 단순히 미리 설정해둔 시간에 맞춰 알림이 오면 충분한 상황이라 flutter_local_notifications 패키지를 사용해서 구현해 보았습니다 !!

 

https://pub.dev/packages/flutter_local_notifications

 

flutter_local_notifications | Flutter Package

A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform.

pub.dev

대체적으로 공식문서를 보면 패키지의 활용법이 잘 나와있습니다. 하지만 조금은 방대한 양의 자료들을 전달하고 있어, 저는 실제로 활용하는 데 어려움을 겪었습니다. 그래서 필요한 부분만 간단하게 설명해보고자 합니당 :) 

 

먼저 local notification을 사용하기 위한 패키지들을 추가해줍니다 !

 

flutter_native_timezone 패키지를 추가하는 이유는 예약 메세지를 위한 현재 시간을 받아오기 위함입니다 :) 

 

그 다음으로는 AndroidManifest.xml 파일을 수정해줘야 합니다 !

파일의 위치는 android -> app -> src -> main에 있습니다 :)

 

여기서 몇가지를 추가해줘야 하는데,  

 

예약 알림과 진동 설정을 위해 추가해준 코드

 

디바이스가 잠금 화면일 때도 알림이 보이게 설정

 

재부팅 시에도 예약 발송된 알림이 정상적으로 오게 하는 설정

 

이렇게 하면 기본적인 설정은 끝입니다 !

 

전체 코드

 

코드 분석

flutter_local_notification을 사용하기 위한 설정 초기화 

 

 

단말기의 시간 받아오기 

 

 

등록하고자 하는 메세지 설정 

 

flutter_local_notification에는 notification을 줄 다양한 함수들이 있는데, 그 중 zonedSchedule는 예약 시간을 정해 그 시간에 메세지를 발송하는 데 사용할 수 있습니다 !! 

 

버튼을 클릭하고 1분 뒤 메세지가 도착 

 

 

반응형