0

코드가있는 앱이 있습니다. 사용자 로그인이 새로 시작되면 "app registrationId"가 서버로 전송되고 추가 사용을 위해 데이터베이스에 저장됩니다 (앱 사용자가 다른 사람으로부터 메시지를받을 때). 그러나 로그 아웃 할 때 대기중인 모든 메시지를 지우고 싶습니다. 메시지를 gcm에 넣으십시오. 그러면 다른 사용자가 로그인해도 이전 사용자 알림을받지 못합니다.GCM에서 보류중인 메시지를 지우시겠습니까?

GCM에서이를 수행 할 수있는 방법은 무엇입니까? 또는 내 시나리오가 완전히 잘못되었습니다!

감사합니다.

+0

GCM 페이로드에서 userID를 보내고 GCM에서받은 userID가 현재 로그인 사용자를위한 경우 클라이언트 측에서 확인한 다음 알림을 표시합니다. 그렇지 않으면 무시합니다. –

+0

안녕하세요 @ 아아시스에서 내 대답에 대한 접근 방식을 시도해 볼 수 있었습니까? 이 좋았다? 그렇다면 올바른 답을 수락하여 게시물에 태그가 올바르게 추가되도록하십시오. 건배! –

답변

1

등록 토큰은 특정 사용자가 아닌 단일 응용 프로그램 인스턴스 (은 장치에 연결됨)에 해당합니다.

이전에이 주제를 둘러 보았습니다. 일반적인 해결책은 페이로드에 사용자 식별자가 포함되도록하는 것입니다. userid라고 가정 해 봅시다. 그런 다음 클라이언트 응용 프로그램에서 userid이 현재 로그인 한 사용자와 일치하는지 확인해야합니다. true이면 알림을 표시하고 그렇지 않으면 메시지를 무시합니다.

다른 사용자가 로그인하고 특정 등록 토큰으로 푸시가 전송되면 앱이 해당 앱을 처리하고 해당 사용자가 아닌 세부 정보를 표시하지 않습니다.

그러나 이것은 원래 사용자가 로그인 한 경우에만 앱에 알림이 표시됨을 의미합니다.

어쨌든, 여전히 목표로하는 동작에 대한 유효한 해결 방법입니다. 희망은 그 말이 맞습니다. 건배!

+0

알림은 Android 상태 표시 줄에 표시되지만 사용자가 앱 유효성 검사기 사용자 ID를 클릭하고 적절한 조치를 취할 때 표시됩니다. 권리 ? – Arash

+0

@Arash 예. 사용중인 페이로드 유형에 따라 클라이언트 응용 프로그램이'onMessageReceived'에서 처리하도록'data' 페이로드를 사용해야한다고 생각합니다. 그런 다음'userId'가 일치하지 않으면 알림을 표시하지 마십시오. –

+0

나는 아직 havent, 나는 앱이 배경에있을 때 cordova push를 처리하기 위해 고심하고있다. 나는 그것을 처리 할 때 당신의 대답을 시도 할 것이다. 감사 . – Arash

관련 문제