반응형
Flutter 앱에서 푸시 메시지가 왔을 때 메시지 타입별로 다른 사운드가 났으면 좋겠다고 하여 찾아봤는데,
검색 해보면 대부분 서버에서 "sound": "sound_file.mp3" 데이터 추가해주면 된다고 하는데.. 절대안됨...
결론은 안드로이드 알림 채널을 사운드 별로 생성해주고 서버에서 해당 채널 아이디를 넣어주면 등록된 채널 사운드가 울린다!
1. app/android/app/src/main/res/raw 폴더 생성 하여 사운드 파일 mp3 형식으로 넣어줍니다.
2. 위의 폴더에 keep.xml 파일을 만들고 mp3 파일 tools 에 등록해 줍니다. (이거 땜에 또 한참 헤맴...)
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@drawable/*,@raw/exit_request"
/>
3. Flutter 에서 각 사운드 별 채널을 등록해 줍니다.(기존 알림 채널이 등록되어 있으면 사운드 변경이 안되고 앱 삭제 후 재설치 해야 합니다. 또는 삭제해주는 코드가 있긴함..)
var channel1 = const AndroidNotificationChannel(
'channel_01', // id
'출차 요청', // title
description:
'출차 요청입니다', // description
importance: Importance.max,
playSound: true,
sound: RawResourceAndroidNotificationSound('exit_request'),
);
await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()?.createNotificationChannel(channel1);
4. 서버에서 푸시를 보낼 때 원하는 사운드의 채널을 추가합니다.
{
"message": {
"token": "f6D3bdBJSfWaBvICiQhwjy:APA91bG3PwlEAiHjlWnUCroSXB2j1zc3QZALbwTZeeLsonfrN1JDfqZSILTqoXkOEB8Xi1V_WAAuZz32mqmz70henwOXE9moVMhxsieZgS_9v7eKhCeU7I8BHNbCMxB2Sw4FU-YhjwrZ",
"notification": {
"title": "Title",
"body": "Body",
},
"android": {
"notification": {
"channel_id": "channel_01",
},
},
"data": {
"click_action": "FLUTTER_NOTIFICATION_CLICK",
"type": "type",
},
},
}
푸시 테스트를 하고 싶다면!
https://zoiworld.tistory.com/1054
https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages
반응형
'# 02 > Flutter' 카테고리의 다른 글
[Flutter] Shorebird (0) | 2023.11.28 |
---|---|
[Flutter] Impeller - Flutter의 새로운 렌더링 엔진 (0) | 2023.06.29 |
[Flutter] What’s new in Dart and Flutter (Flutter 3.10 / Dart 3.0) (0) | 2023.06.19 |
[Flutter] 면접 질문! (0) | 2023.03.19 |
[Flutter] BuildContext 객체와 위젯 키 (0) | 2023.03.12 |