防止截屏和录屏(设置窗口为隐私模式)
手机应用防止截屏和录屏功能(开启隐私模式)能够有效防止敏感信息被恶意传播,减少盗版行为,确保合规性,增强用户对应用的信任感,并维护公平性,尤其在涉及个人信息和付费内容的场景中显得尤为重要。
版本: API 9 以上
主要方法: 使用setWindowPrivacyMode设置窗口为隐私模式,
注意: 设置窗口而不是某一个页面, 相当于整个应用设置了防截屏
主要代码
export class windowManager {
// 设置窗口为隐私模式
static privacyScreen(isPrivacy: boolean = false) {
let windowClass: window.Window | undefined = undefined
let isPrivacyMode = isPrivacy
try {
window.getLastWindow(getContext(), (error, data) => {
if (error.code) {
console.log('error= ' + JSON.stringify(error))
return
}
windowClass = data
windowClass.setWindowPrivacyMode(isPrivacyMode, (err) => {
if (err.code) {
console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in setting the window to privacy mode.');
});
})
} catch (exception) {
console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception));
}
}
}
配置权限
在Entry > module.json5 中配置如下权限
{ "name": "ohos.permission.PRIVACY_WINDOW" }
参考文档: @ohos.window (窗口)-图形图像-ArkTS接口参考-ArkTS API参考 - 华为HarmonyOS开发者