Flutter, Firebase iOS, 클라우드 메시지는 앱이 백그라운드에있을 때 표시되지 않고 앱이 포 그라운드에있는 경우에만 표시됩니다.

Dec 01 2020

나는 flutter 의존성을 사용하고 있습니다.

firebase_messaging: ^7.0.3
flutter_local_notifications: ^3.0.1+6

다음과 같이 firebase 클라우드 메시지를 보냅니다.

{
"to": "/topics/demo_ios"
"notification" : {
"body" : "Hi there now now",
"title" : "Wow!",
"sound": "default"

},
 "priority": "high"
"data": {
    "title": "Hi there yes",
    "body": "Wow",
}
}

iOS에서는 앱이 포 그라운드에있을 때 알림이 표시되지만 백그라운드에있을 때는 전혀 표시되지 않습니다. 많은 것을 읽고 고치려고했지만 여전히 작동하지 않습니다. xcode에서 백그라운드 가져 오기, 원격 알림 및 백그라운드 처리를 설정했지만 여전히 작동하지 않습니다.

plist 파일에서 FirebaseAppDelegateProxyEnabled를 false로 설정했지만 도움이되지 않았습니다.

허가를 요청합니다.

_messaging.requestNotificationPermissions(
  const IosNotificationSettings(sound: true, badge: true, alert: true, provisional: false)
);
_messaging.onIosSettingsRegistered.listen((event) {print('2124: ios Setting registered');});

답변

NihadDelic Dec 01 2020 at 05:11

먼저 firebase_messaging: ^8.0.0-dev.8iOS 백그라운드 처리가 활성화되어 있으므로 플러그인을으로 업데이트하는 것이 좋습니다 . 이 변경 사항을 참조 하십시오 .

  • iOS 백그라운드 핸들러 지원.

다음으로,이 모든 것을 flutter 프로젝트에 통합하는 방법은 공식 문서 FlutterFire 를 따르십시오 (이것은 플러그인의 8.xx-dev 버전 직후의 문서입니다.

마지막으로 APN에 대해 자세히 읽어보십시오. Apple은 이러한 메시지를 다르게 처리하고 APNSConfig알림을 보내기 위해 스크립트 내부 에 속성 이 있어야하기 때문 입니다.

FirebaseAdmin을 통해 알림을 보내는 경우 이를 읽으십시오 .

이 경우 속성 content_available=True내에 포함 된 항목 을 설정해야 APNSConfig하므로 기본적으로 FirebaseAdmin을 사용하는 경우 다음과 유사한 속성도 포함해야합니다.

apns=messaging.APNSConfig(
        payload=messaging.APNSPayload(
            aps=messaging.Aps(
                alert='alert text',
                sound='s',
                content_available=True,
                mutable_content=True,
                category='c',
                thread_id='t',
                custom_data={
                    'id': 'xxx',
                    'type': 'xxx',
                    'title': 'Robb',
                    'content': 'Axxxx',
                    'image': 'xxx',
                    'deepLink': 'xxxx',
                },
            ),
        )
    ),
ParveshKhan Dec 01 2020 at 10:31

나는 또한 같은 문제가 있었고 testflight에 IPA 파일을 업로드하려고 시도하면 희망이 작동합니다.

RJB Dec 03 2020 at 02:28

글쎄요, 해결책은 아주 간단했고 제 대신에 실수였습니다.

documnents pub.dev 상태 :

Firebase 문서의이 가이드에 따라 푸시 알림을 받기 위해 Apple에 필요한 인증서를 생성합니다. "프로비저닝 프로필 만들기"섹션을 건너 뛸 수 있습니다.

여기 링크가 있습니다: https://firebase.google.com/docs/cloud-messaging/ios/certs

이 단계를 수행하는 것을 잊었습니다. 이렇게 한 후 작동했습니다.