라이믹스 기본 푸시 기능을 사용할 경우, 알림 미리보기 플로팅이 나오게 할 수 있을까요?
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.3 |
현재 이달 말에서 다음 달 중으로 앱 공개를 목표로 개발을 진행중에 있습니다.
iOS는 끝났고, 안드로이드 마무리 작업만 남아있는 상황인데요,
테스트를 계속 하면서 기본 푸시 기능에 아쉬움이 생겨서 혹시 이를 수정 할 수 있을까 싶어 문의드립니다.
보통 네이버나 다음 카페에서 알림을 받을 경우
위처럼 화면 위에 미리보기 알림으로 나타나지만
라이믹스에서 알림을 받을 경우에는 알림 진동과 소리만 울리고, 화면 위에는 알림 플로팅이 나타나지 않아서 상단바를 내려야 알림을 확인 할 수 있더라구요.
이걸 앱을 제작하면서 보니 앱은 그냥 푸시를 보내주는 역할만 하고,
실제로는 라이믹스 코어의 알림쪽을 수정해야 할 것 같더라구요.
혹시 라이믹스에서도 위와 같이 알림을 처리하려면 어떻게 해야하는지 알려주시면 감사하겠습니다! :)
댓글 9
필요한 정보가 아예 전달되지 않았다면 몰라도, 일단 받은 정보를 어떻게 가공해서 어떻게 표시할지는 앱에서 얼마든지 커스터마이징할 수 있습니다. 앱 개발에 들어가는 노력을 최소화하고 디폴트 상태 그대로 쓰려고 하면 좀 귀찮겠지만, 기본 알림은 기존에 알림센터에서 지원하던 웹 알림, 메일 알림, SMS 알림과의 호환성도 고려해야 하기 때문에 스키마를 조정하기가 쉽지 않아요. 알림센터 자체가 굉장히 이상한 데이터 구조를 사용하고 있습니다... ㅡ.ㅡ
필요시 sendNotification()을 사용하여 커스텀 알림을 생성하거나 Push 클래스를 직접 사용해서 푸시알림을 생성한다면 더 자유롭게 커스터마이징이 가능합니다. 이건 코어 수정을 생각할 것이 아니라 모듈을 개발하면 될 일이죠.
결론: 알림센터 처음 만드셨던 분한테 따지세요. ㅋㅋㅋ
/common/framework/drivers/push/fcm.php
여기서 중간에 보면
$notification = $message->getMetadata();
$notification['title'] = $message->getSubject();
$notification['body'] = $message->getContent();
이런 코드가 있을겁니다.
사실 이 코드 자체는 정상인 코드입니다.
title에 subject를 넣고 body에 content를 넣으니까요.
다만 라이믹스에서 애초에 알람을 발생시킬때 제목에다가 모든걸 다 때려넣는게 문제인데
이걸 쫓아다니면서 다 고치는건 힘드니까 여기서 한번에 고치는겁니다.
즉 일종의 편법입니다.
$notification = $message->getMetadata();
if ( $message->getContent() ) {
$notification['title'] = $message->getSubject();
$notification['body'] = $message->getContent();
} else {
$notification['title'] = '사이트이름';
$notification['body'] = $message->getSubject();
}
$notification['sound'] = 'default';
이런 식으로 고치는걸 추천드립니다.
밑에 sound는.. 저는 잘 모르겠는데 전에 어떤 글 보니까 이렇게 고치면 또 뭐가 고쳐지는거 같더라구요.