하려던 일은 사라졌지만 덕분에 새로운 사실을 알았다.
iOS에서 푸시 관련해서는 대부분 서버에서 처리를 해줘야 한다는..
특정 푸시 알림이 올 때만 custom sound가 play 되도록 해달라는 요청을 받았다.
안드로이드는 요청이 먼저 들어와 이미 작업이 끝난 상태였는데 서버에서 변경 없이 앱에서만 처리 해줬다고 하셨다.
그런데 아무리 찾아봐도 iOS는 앱 내에서만 처리하는 방법이 안나오고 서버에서 sound 파일명을 함께 페이로드로 보내주는 방법만 나오더라. 그래서 베트남 10년차 개발자분께 자문을 구해봐도 그건 서버에서 해줘야 한다고 하고, 400명 있는 iOS 개발자 오픈채팅방에서도 동일한 답변을 해주셨다.
그래서 앱 내에서만은 처리가 불가능할 것 같다, 서버에서 추가로 보내주셔야 한다 말씀을 드리니 현재로는 서버에서 푸시 로직을 바꿀 수가 없다고 하셨다. 그래서 해당 요청은 iOS는 진행하지 않기로... 되었다..
하지만! 소리도 너무 궁금하니깐 내가 혼자 푸시 테스트를 해보고 싶어서 방법을 찾아보니
Postman을 사용해서 직접 푸시 테스트를 해 볼 수가 있었다!
1. Postman 설정
https://www.postman.com/downloads/
위 페이지에서 Postman을 다운받을 수 있다.
워크스페이스에서 새로운 HTTP Request를 만들어 다음과 같이
POST 요청으로 변경 후 https://fcm.googleapis.com/fcm/send 주소를 넣어준다.
Header에서 Content-Type은 application/json으로, Authorization에는 "key=서버키"를 넣어준다.
* 서버키는 파이어베이스 프로젝트 설정에서 클라우드 메시징에 등록되어있는걸로 !
그런다음 Body에 다음과 같이 코드를 넣어준 후 send를 누르면 정상적으로 푸시가 간다..
2. Sound 테스트
sound 항목 없이 푸시를 보내면 .sound 알림 설정이 되어있다 하더라도 알림 소리 따로 없이 무음으로 뜨더라.
소리와 함께 푸시를 띄우고 싶다면 반드시 sound 항목을 JSON payload에 추가해서 보내줄것!!
{
"to":"FCMtoken값",
"priority" : "high",
"notification" : {
"title" : "알림",
"body" : "테스트"
"sound" : "default"
}
}
sound 를 default로 보내주면 기본 소리가 나고
원하는 소리를 넣고 싶을 때는 프로젝트 파일 내에 sound 파일을 추가해준 후, sound 파일 명을 보내주면 된다.
소리 파일 형식은 .aiff .wav .caf 파일 형식을 지원하는 듯 하다.
+ 2022-06-22
3. 딥링크 테스트
푸시 눌렀을 때, 링크가 포함되어있으면 해당 페이지로 넘어가도록 설정해준 후 테스트를 하기 위해 추가 파라미터를 넣어주었다.
notification 안에다 넣으면 데이터가 요런 식으로 gcm.notification 이 붙어 인식이 안되더라.
AnyHashable("gcm.notification.type_string"): deeplinkurl
그래서 notification 말고 data 안에다 넣으니 해당 링크 잘 인식해서 원하는 페이지로 연결이 잘 되었다!
(앱에서 type_string이 deeplinkurl 인지 확인하고, 맞다면 link_url로 들어온 url 로 연결시키는 로직이라 다음과 같이 설정해주었다. 원하는 방식으로 커스텀해서 잘 사용하시길..!)
{
"to":"FCMtoken값",
"priority" : "high",
"notification" : {
"title" : "알림",
"body" : "테스트"
"sound" : "default"
}
"data" : {
"type_string" : "deeplinkurl"
"link_url" : "https://myapp.onelink.me/"
}
}
참고 : Postman에서 Push 보내기, StackOverflow - Change push notification sound
혹시나 제 글이 도움이 되셨다면 하트 한번 눌러주시면 감사하겠습니다 🥰
iOS 개발자분들 모두 화이팅입니다👍🏻
'초보 iOS 개발자의 일상 > 개발 업무' 카테고리의 다른 글
OCR - iOS 텍스트 인식 Firebase ML Kit와 TesseractOCR 비교 (한글) (0) | 2021.11.22 |
---|---|
[Swift iOS] webview URLRequest HTTP header 추가하기 (0) | 2021.11.17 |
[swift iOS] WKWebView file download 웹뷰 파일 다운로드 (feat. FileManager) (0) | 2021.11.03 |
[Swift iOS] STT & TTS 성능 비교 - Speech / Naver / Google (3) | 2021.10.25 |
[Swift iOS] Custom Keypad 만드는 법 (0) | 2021.10.19 |