반응형
Ios는 자체적으로 알림을 띄우지만 aos는 안된다. 그래서 flutter_local_notifications를 사용한다.
flutter_local_notifications: ^버전
flutter_local_notifications를 사용할 것이기 때문에 기존 ios의 알림설정(fcm)은 꺼주도록 한다. 안끄면 로컬노티, fcm 두개가 동시에 중복으로 옵니다!
// FlutterLocalNotificationsPlugin 인스턴스 생성
final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
// Android용 알림 채널 생성
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(const AndroidNotificationChannel(
'high_importance_channel', // 알림 채널 식별자
'high_importance_notification', // 알림 채널 이름
importance: Importance.max, // 알림 중요도 최대 설정
));
// iOS 초기화 설정
DarwinInitializationSettings iosInitializationSettings =
const DarwinInitializationSettings(
requestAlertPermission: true, // 알림 권한 요청: Alert
requestBadgePermission: true, // 알림 권한 요청: Badge
requestSoundPermission: true, // 알림 권한 요청: Sound
);
// 플랫폼별 앱 아이콘으로 알림 표시 설정
InitializationSettings initializationSettings = InitializationSettings(
android: const AndroidInitializationSettings("@mipmap/launcher_icon"),
iOS: iosInitializationSettings,
);
// 알림 플러그인 초기화
await flutterLocalNotificationsPlugin.initialize(
initializationSettings,
onDidReceiveNotificationResponse: (detail) async {
print("포어그라운드에서 알림을 클릭했을 경우 이 함수 실행");
if (detail.payload == null) return;
// 알림으로 받은 Payload를 활용하여 알림을 클릭했을 때 동작을 여기서 제어
},
);
ios의 경우 기본적으로 어플이 열려있을때는 알림이 울리지 않도록 설정이 되어 있습니다. 그렇기 때문에 AppDelegate.swift에 아래의 코드를 추가하여 주어야 합니다. (method 안에 들어가야 함)
ios\Runner\AppDelegate.swift 에 추가
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}
넣어주면 끗~ local 세부설정은 다른 블로그 보세욤 많습니다~ 전 flutter_local_notifications를 사용하는 이유를 알려드리기 위한 글입니다~!
'Flutter' 카테고리의 다른 글
[Flutter] 플러터 - Impeller, Skia (0) | 2024.01.21 |
---|---|
[Flutter] 플러터 - Using the Impeller rendering backend (0) | 2024.01.21 |
[Flutter] 플러터 - fcm foreground notification click 포어그라운드 알림 클릭 이벤트 구현 (onDidReceiveNotificationResponse) (0) | 2024.01.19 |
[Flutter] 플러터 - Ios fcm 알림 foreground 중복으로 두번 온다면? (0) | 2024.01.16 |
[Flutter] 플러터 - MAC fvm으로 쉽게 버전관리 (0) | 2024.01.13 |