Flutter × FCM에서 Push 알림

개시하다
안녕하세요.
플루터Firebase Cloud Messaging에서 실시할 기회가 생겨 알림을 사용했기 때문에 메모로 기사를 썼다.
본고는 패키지 가져오기에서 테스트 알림을 받는 절차까지 총결하였다.
남의 참고가 됐으면 좋겠어요.
전제로 삼다

  • Apple Developer 계좌(99달러 ≈11800엔/년)
  • iOS의 실제 기기(iOS 시뮬레이터에서 알림이 동작하지 않기 때문)
  • 필요
    1. 패키지 가져오기
    dependencies:
      firebase_messaging: ^11.2.8
    
    프로젝트pubspec.yaml 파일에 임의firebase_messaging 버전pub get을 추가합니다.
    2. iOS 설치
    여기 좀 귀찮아요.
  • Xcode의 설정

  • APNs 및 FCM 연결
  • APNs 키를 Firebase
  • 에 등록
  • App Identifier 생성
  • Provisioning Profile 등록
  • 라는 순서로 해설을 진행했다.
    Xcode 설정
    먼저, Xcode의 capability(애플리케이션의 기능)
  • 「Push Notifications」
  • 「Background Modes」
  • 추가합니다.
    Xcode 열기

    ① Runner> ② Target Runner ③ Signing &Capabilities 를 선택합니다.

    그런 다음 ① "+capability"단추에서 ② Push Notifications를 선택하면 알림 설정이 유효합니다.

    Background Modes도 마찬가지로 ① "+capability"단추에서 ② Background Modes를 선택하여 유효하게 합니다

    자세한 설정으로 Background fetch 및 Remote notifications의 하위 모드를 활성화합니다.

    Xcode에 대한 설정이 완료됩니다.
    APNs 및 FCM 연결
    APNs(Apple Push Notification service)와 FCM(Firebase Cloud Message)을 계속 연결합니다.
  • APNs 키를 Firebase
  • 에 등록
  • App Identifier 생성
  • Provisioning Profile의 생성
  • 1. APNs 키를 Firebase에 등록
    Apple Developer 계정 페이지를 열고 Centeficates, Identifiers & Profiles를 선택합니다.

    다음 페이지로 날아갈 수 있으므로 Keys에서 Create Key 선택

    Key Name에 적절한 이름을 붙이고 APNs에서 선택합니다.

    Continue 를 누르면 확인 화면, 확인 내용, Resister 가 표시됩니다.

    ①Key ID를 복사하고 ② 파일을 다운로드합니다.(다시 다운로드할 수 없음)

    이렇게 하면 APNs의 키를 생성할 수 있습니다.
    그런 다음 생성된 키를 Firebase 프로젝트에 등록합니다.
    프로젝트 설정>Cloud Message를 콘솔에서 엽니다.

    Apple 애플리케이션 구성 > APNs 인증 키 > 업로드 시작
  • ① Key 파일(방금 생성된 파일)
  • ② Key ID(방금 복사한 것)
  • ③ Team IDAppleDeveloper페이지 오른쪽 상단 8자리 정도의 ID)
  • , 그런 다음 업로드합니다.

    이렇게 하면 APNs 키가 Firebase 항목에 로그인할 수 있습니다.

    2. App Identifier의 생성
    이어 App Identifier(번들 ID와 애플리케이션 기능 등에 대한 식별 정보를 취합한 것)를 생성한다.
    선택Certificates, Identifiers & Profiles>Identifiers>+ 단추

    App IDs>App을 선택하고 설명(상관없음)과 bundle ID를 입력합니다.

    capability 섹션에서 Push Notifications를 설정하고 내용을 확인한 후 Resister를 진행합니다.

    이로써 App Identifier 등록이 완료되었습니다.
    3. Provisioning Profile 생성
    마지막으로 Provisioning Profile(AppID와 Key 등의 정보를 모은 파일)을 생성하고 응용 프로그램에 로그인합니다.
    선택 Certificates, Identifiers & Profiles> 소개 >+ 버튼

    개발판은 iOS 앱 Development를, 본격적으로 사용하려면 앱스토어를 선택한다.

    AppID 방금 생성한 AppID를 선택합니다.

    개발자 인증서 선택

    장치도 등록되었을 때 선택하십시오.

    프로필의 이름을 기입하다

    내용을 확인한 후 Download를 진행합니다.

    이렇게 하면 알림 설정이 있는 간단한 파일을 생성하여 Xcode에 로그인할 수 있습니다.
    Xcode ① Runner > ② Target Runner ③ Signing &Capabilities를 열고 Provisioning Profile 열에서 방금 다운로드한 파일을 선택하십시오.

    조금 길지만 세트로 설치가 완료되었습니다.
    그림 알림을 실행하려면
    추가 설정이 필요합니다.
    이번엔 해설이 없어요. 공식 Doc 자세한 해설이 있어요. 저쪽을 보세요.🙏
    3. 통지의 발송
    알림 권한 요청
    마침내 응용 소프트웨어 방면의 설치를 추진해야 한다.
    main.dart 내의 함수로 알림을 요청할 수 있는 권한을 시도해 보십시오.
        // FCM の通知権限リクエスト
        final messaging = FirebaseMessaging.instance;
        await messaging.requestPermission(
          alert: true,
          announcement: false,
          badge: true,
          carPlay: false,
          criticalAlert: false,
          provisional: false,
          sound: true,
        );
    
    이후 프로그램을 만들 때 권한 요청 대화상자가 표시됩니다.

    권한의 상태는 다음과 같은 4가지가 있는데 requestPermission 방법의 반환값은 NotificationSettingsauthorizationStatus 속성에서 확인할 수 있다.
    enum AuthorizationStatus {
      /// 承認
      authorized,
    
      /// 拒否
      denied,
    
      /// 未定(requestPermission するまではこの状態)
      notDetermined,
    
      /// 暗黙的な仮承認(iOS 12 以上の場合、requestPermission 時に provisional: true を指定することで、ダイアログ無しに通知を送信することが出来る)
      /// 詳細 → https://firebase.flutter.dev/docs/messaging/permissions/#provisional-authorization
      provisional,
    }
    
    https://firebase.flutter.dev/docs/messaging/permissions/
    권한이 부여되면, 마지막 영패를 사용하는 테스트 알림에서 동작을 검사할 것입니다.
    토큰을 사용한 테스트 알림
    토큰 (알림을 보내는 장치 식별자) 을 가져오고 Firebase 컨트롤러에서 테스트 알림을 보냅니다.getToken 호출 방법, print 반환값 token.
        // FCM の通知権限リクエスト
        final messaging = FirebaseMessaging.instance;
        await messaging.requestPermission(
          alert: true,
          announcement: false,
          badge: true,
          carPlay: false,
          criticalAlert: false,
          provisional: false,
          sound: true,
        );
    
        // トークンの取得
        final token = await messaging.getToken();
        print('🐯 FCM TOKEN: $token');
    

    기호화폐가 print에 의해 지정되었기 때문에 Firebase 컨트롤러에 따라 알림을 보냅니다.
    토큰을 복사하고 Firebase 콘솔의 Cloud Message 태그를 선택합니다.

    테스트 알림을 입력하는 글

    방금 복사한 Token을 입력하여 보내 보십시오.

    프로그램이 Background 상태에 들어가면 알림이 나타납니다🎉

    Foregroud 상태에서 알림을 표시하려면 설정이 필요합니다. 공식 문서 구현 참조🙏
    컨디션
    설명
    Foreground
    프로그램을 열 때 중 & 사용 중인 상태를 표시합니다.
    Background
    응용 프로그램이 열려 있지만 배경(최소화) 상태입니다.사용자가 장치의 시작 버튼을 누르거나 스위치를 적용하여 다른 응용 프로그램으로 전환할 때 상태가 이렇게 됩니다.
    Terminated
    터미널이 잠겼을 때 프로그램이 시작되지 않은 상태입니다.
    최후
    알림 기능은 모바일 애플리케이션의 주요 기능으로 많은 초보자들도 이를 개인 애플리케이션에 편입하기를 원한다.
    다른 한편, 설치의 난이도가 좀 높기 때문에 (특히 iOS의 설치 주변에서) 이 보도가 이들에게 참고가 된다면 기쁠 것이다.🙏
    끝까지 읽어주셔서 감사합니다.
    참고 자료
    https://firebase.google.com/docs/cloud-messaging
    https://firebase.flutter.dev/docs/messaging/usage
    배려받는 지역사회
    https://kboyflutteruniv.com/
    https://community.camp-fire.jp/projects/view/280040

    좋은 웹페이지 즐겨찾기