Web Analytics
본문으로 건너뛰기

useSGScreenRecord 새로움 ✨

버전

v2.0.0+부터 사용 가능

화면 녹화 이벤트를 감지하기 위한 React 훅입니다. v1.x의 registerScreenRecordingEventListener를 대체합니다.

플랫폼 지원:

  • iOS 13+
  • Android 15+ (API 35+)

Core Function

function useSGScreenRecord(
listener?: (event: ScreenGuardScreenRecordDataObject) => void
): {
recordingData: ScreenGuardScreenRecordDataObject | null;
activationStatus: ScreenGuardHookData | null;
}

매개변수

이름필수 여부타입설명
listener아니요function녹화 상태가 변경될 때 호출될 선택적 콜백 함수

반환 값

이름타입설명
recordingDataobject | null현재 녹화 상태에 대한 데이터
activationStatusobject | nullScreenGuard의 현재 활성화 상태

recordingData 객체

interface ScreenGuardScreenRecordDataObject {
isRecording?: boolean;
}
필드타입설명
isRecordingboolean | undefined화면 녹화가 시작되면 true, 중단되면 false입니다. 스크린 녹화 이벤트가 발생하기 전까지는 undefined입니다.

activationStatus 객체

interface ScreenGuardHookData {
method: string;
isActivated: boolean;
}
필드타입설명
methodstring현재 활성화된 방지 방법. 가능한 값: 'blur', 'image', 'color', '' (비활성화 시 빈 문자열)
isActivatedbooleanScreenGuard가 현재 활성화되어 있으면 true, 아니면 false

예제 코드

기본 사용 예제:

import React from 'react';
import { View, Text } from 'react-native';
import ScreenGuardModule, { useSGScreenRecord } from 'react-native-screenguard';

function App() {
const { recordingData, activationStatus } = useSGScreenRecord();

React.useEffect(() => {
ScreenGuardModule.initSettings();
}, []);

return (
<View>
<Text>활성화 여부: {activationStatus?.isActivated ? '예' : '아니요'}</Text>
<Text>
녹화 상태: {recordingData?.isRecording ? '🔴 녹화 중...' : '⚪ 녹화 안 함'}
</Text>
</View>
);
}

콜백 리스너와 함께 사용하는 예제:

import React from 'react';
import { Alert } from 'react-native';
import ScreenGuardModule, { useSGScreenRecord } from 'react-native-screenguard';

function App() {
useSGScreenRecord((event) => {
if (event.isRecording) {
Alert.alert('경고', '화면 녹화가 시작되었습니다!');
} else {
Alert.alert('정보', '화면 녹화가 중단되었습니다.');
}
});

// ... 나머지 컴포넌트 코드
}

참고 사항

  • 이 훅은 컴포넌트가 언마운트될 때 구독 해제(cleanup)를 자동으로 처리합니다.
플랫폼 지원
  • iOS: iOS 13+에서 전체 지원
  • Android: Android 15+ (API 35+)에서만 지원됩니다. 이전 Android 버전에서는 이 설정이 무시되며 화면 녹화 감지를 사용할 수 없습니다.

데모