Web Analytics
跳到主要内容

useSGScreenRecord 新增 ✨

版本

自 v2.0.0+ 起可用

用于检测录屏事件的 React Hook。取代了 v1.x 中的 registerScreenRecordingEventListener

平台支持:

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

Core Function

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

参数

名称是否必填类型描述
listenerfunction当录屏状态发生变化时触发的可选回调函数

返回值

名称类型描述
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', ''(未激活时为空)
isActivatedboolean如果当前已激活 screenguard,则为 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('提示', '录屏已停止。');
}
});

// ... 组件的其余部分
}

注意事项

  • 当组件卸载时,此 Hook 会自动处理清理工作。
平台支持
  • iOS: iOS 13+ 完全支持
  • Android: 仅支持 Android 15+ (API 35+)。在旧版 Android 上,此设置将被忽略且录屏检测不可用。

演示