프로그래밍 언어/React

FCM Token 생성 및 권한 설정 (2)

sujii 2023. 1. 26. 14:34
반응형

토큰의 생성

앱을 처음 실행할 때 FCM은 클라이언트 앱 인스턴스에 대한 등록 토큰 생성

// React native에서의 토큰 생성
import messaging from '@react-native-firebase/messaging';
const token = await messaging().getToken();

 

React Native의 경우 android, iOS 설정을 각각 해줘야 한다.

iOS 권한

iOS에서는 사용자가 앱에게 알림 권한을 부여하지 않으면 알림 전송을 할 수 없다.

알림 권한 종류

  • granted
  • not determined(default)
  • declined

사용자가 권한 요청을 거절한다면 다시 요청할 수 없으며, 사용자가 직접 iOS 설정에서 변경해야 한다.

// React native에서의 권한 요청하기 <iOS>
import messaging from '@react-native-firebase/messaging';

async function requestUserPermission() {
  const authStatus = await messaging().requestPermission();
  const enabled =
    authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
    authStatus === messaging.AuthorizationStatus.PROVISIONAL;

  if (enabled) {
    console.log('Authorization status:', authStatus);
  }
}

 

iOS 설정의 FCM 알림 변경 로직

알림 권한 읽어오기 [FCM: 3편]iOS 알림권한

import messaging from '@react-native-firebase/messaging';

async function checkApplicationPermission() {
  const authorizationStatus = await messaging().requestPermission();

  if (authorizationStatus === messaging.AuthorizationStatus.AUTHORIZED) {
    // 권한 활성화
  } else {
    // 권한 비활성화
  }
}

 

android, iOS 설정의 FCM 알림 변경 로직

알림 권한 읽어오기

import { requestNotifications } from 'react-native-permissions';
requestNotifications().then(({ status }) => {
  // status : granted / blocked
	console.log(Platform.OS, status);
});

status

  • granted : 권한 부여
  • blocked : 권한 거부, 더 이상 요청 불가능
  • denied: 권한 요청되지 않았음 / 거부되었지만 요청 가능
  • limited: 권한 부여되었지만, 제한 있음
  • unavailable: 권한 사용할 수 없음

'프로그래밍 언어 > React' 카테고리의 다른 글

[RN] React Native의 정의와 장단점  (0) 2023.01.30
FCM Token 만료 및 갱신 (3)  (0) 2023.01.26
FCMToken이란? (1)  (0) 2022.11.18
Javascript VS Typescript  (0) 2022.11.07
React : Context API  (0) 2022.06.22