자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 안드로이드에서 백그라운드 푸쉬 해결방법.
2017.06.19 01:28
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
포그라운드에서의 푸시 수신은 예제가 많은데, 백그라운드에서의 푸시는 예제가 잘 안보여 문의드립니다.
앱이 종료된 상태에서는 안드로이드의 gcm(혹은 버전에 따라선 fcm)이 대신 알림을 받아 알림 센터로 보내주고, 앱이 실행중인 경우 앱 내에서 PushReceived 이벤트가 발생하는 걸로 알고 있습니다.
실행중인 포그라운드 상태는 값을 받아 가공해서 알림 센터로 보내는걸 구현했는데, 앱이 종료상태인 백그라운드에서의 알림은 어떻게 해야할지 감이 안옵니다.
동일한 소스를 응용해서 서비스로 컴파일해 추가하면 앱 크래시가 나버리더라구요..
사용중인 프로그램은 도쿄 사용중입니다.
댓글 4
-
험프리
2017.06.19 15:08
-
나즈나
2017.06.19 23:36
현재 FCM의 경우는 컴포넌트가 없어서 프로바이더 설정이 안되는데 푸시 이벤트 사용이 가능할까요..?
-
험프리
2017.06.21 09:43
FCM의 경우 저도 시도해 보지 못해 안내드리기가 어렵습니다. 양해부탁드립니다.^^
아시겠지만, 비공식적으로 FCM에 대한 시도고 개발자들 사이에서 진행하고 있습니다.
http://thundaxsoftware.blogspot.kr/2017/01/firebase-cloud-messaging-with-delphi.html
위 링크를 참고하셔서 FCM 시도해보시면 어떨까 싶습니다.
그리고, 자체적인 푸쉬서버를 만드시려면 MQTT 기술도 검토해보시기 바랍니다.
http://blog.naver.com/PostList.nhn?blogId=futurewave01&from=postList&categoryNo=46
위 블로그에서 델파이로 시도한 내용을 보실 수 있으며, 소스코드를 살펴보니 FMX 프레임워크에서도 사용 가능할 것으로 보입니다.
MQTT는 경량 메시지 프로토콜로 페이스북 메신저에서 사용하는 기술이라고 합니다.
저도 시간되면 검토해보고 싶은 기술입니다.
-
나즈나
2017.06.24 14:35
Jordi MVP의 코드 또한 시도해보니 백그라운드 상태에서는 푸시가 안되어서 문의했습니다. ㅠㅠ
현재 해당 mvp님께도 질의 상태구요.
일단 델파이로는 구현이 안정적 동작은 무리다 판단하여, 안드로이드 스튜디오에서 해결했습니다. 감사합니다.
Firemonkey 안드로이드에서 백그라운드 푸쉬 해결방법.
2017.06.19 01:28
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
포그라운드에서의 푸시 수신은 예제가 많은데, 백그라운드에서의 푸시는 예제가 잘 안보여 문의드립니다.
앱이 종료된 상태에서는 안드로이드의 gcm(혹은 버전에 따라선 fcm)이 대신 알림을 받아 알림 센터로 보내주고, 앱이 실행중인 경우 앱 내에서 PushReceived 이벤트가 발생하는 걸로 알고 있습니다.
실행중인 포그라운드 상태는 값을 받아 가공해서 알림 센터로 보내는걸 구현했는데, 앱이 종료상태인 백그라운드에서의 알림은 어떻게 해야할지 감이 안옵니다.
동일한 소스를 응용해서 서비스로 컴파일해 추가하면 앱 크래시가 나버리더라구요..
사용중인 프로그램은 도쿄 사용중입니다.
댓글 4
-
험프리
2017.06.19 15:08
-
나즈나
2017.06.19 23:36
현재 FCM의 경우는 컴포넌트가 없어서 프로바이더 설정이 안되는데 푸시 이벤트 사용이 가능할까요..?
-
험프리
2017.06.21 09:43
FCM의 경우 저도 시도해 보지 못해 안내드리기가 어렵습니다. 양해부탁드립니다.^^
아시겠지만, 비공식적으로 FCM에 대한 시도고 개발자들 사이에서 진행하고 있습니다.
http://thundaxsoftware.blogspot.kr/2017/01/firebase-cloud-messaging-with-delphi.html
위 링크를 참고하셔서 FCM 시도해보시면 어떨까 싶습니다.
그리고, 자체적인 푸쉬서버를 만드시려면 MQTT 기술도 검토해보시기 바랍니다.
http://blog.naver.com/PostList.nhn?blogId=futurewave01&from=postList&categoryNo=46
위 블로그에서 델파이로 시도한 내용을 보실 수 있으며, 소스코드를 살펴보니 FMX 프레임워크에서도 사용 가능할 것으로 보입니다.
MQTT는 경량 메시지 프로토콜로 페이스북 메신저에서 사용하는 기술이라고 합니다.
저도 시간되면 검토해보고 싶은 기술입니다.
-
나즈나
2017.06.24 14:35
Jordi MVP의 코드 또한 시도해보니 백그라운드 상태에서는 푸시가 안되어서 문의했습니다. ㅠㅠ
현재 해당 mvp님께도 질의 상태구요.
일단 델파이로는 구현이 안정적 동작은 무리다 판단하여, 안드로이드 스튜디오에서 해결했습니다. 감사합니다.
GCM과 APN은 앱의 포그라운드(활성화) 상태 뿐아니라 백그라운드(비활성화) 상태에서도 푸시메시지를 받아 처리할 수 있습니다.
GCM/APN 설정 후 별다른 코딩(TNotificationCenter로 알림센터 표현)하지 않아도 알림센터에 메시지가 표시됩니다.
그리고, TPushEvent.OnReceivce 이벤트에 별도의 코딩을 한 경우 해당 코드도 실행됩니다.(이 코드를 푸쉬 서비스에 등록하는 것으로 보입니다. 이 코드들은 비활성 상태에서도 실행됩니다.)
위 내용으로 다시한번 테스트 해보시기 바랍니다.^^
(위 내용은 10.1 베를린에서 진행했으며, 10.2 도쿄에서는 해당 테스트를 진행하지 않았습니다.)