设置禁止截屏的隐私模式

设置禁止截屏的隐私模式

HarmonyOS
2024-05-21 22:05:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
pfuchenlu

本文主要讲如何设置一个隐藏模式,在我们需要将手机的部分文件或者窗口保密,就需要设置成禁止截屏的模式

使用的核心API

这个demo将用到的是setPrivacyMode接口,

设置窗口是否为隐藏模式,使用callback异步回调。

设置为隐藏模式的窗口,窗口内容将无法被截屏或录屏

核心代码解释

import { BusinessError } from '@ohos.base'; 
import window from '@ohos.window'; 
@Entry 
@Component 
struct Index { 
  @State message: string = 'Hello World'; 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Button() { 
          Text("开启隐藏") 
        } 
        .width(80) 
        .height(60) 
        .onClick(() => { 
          let isPrivacyMode: boolean = true; 
          try { 
            window.getLastWindow(getContext(), (err: BusinessError, data) => { 
              const errCode = err.code; 
              if (errCode) { 
                return; 
              } 
              let promise = data.setWindowPrivacyMode(isPrivacyMode); 
              promise.then(() => { 
                this.message = "隐私模式"; 
                console.info('已成功将窗口设置为隐私模式.'); 
              }).catch((err: BusinessError) => { 
                console.error('Failed to set the window to privacy mode. Cause: ' + JSON.stringify(err)); 
              }); 
            }) 
          } catch (exception) { 
            console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception)); 
          } 
        }) 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Button() { 
          Text("关闭隐藏") 
        } 
        .width(80) 
        .height(60) 
        .onClick(() => { 
 
          let isPrivacyMode: boolean = false; 
          try { 
            window.getLastWindow(getContext(), (err: BusinessError, data) => { 
              const errCode = err.code; 
              if (errCode) { 
                return; 
              } 
              let promise = data.setWindowPrivacyMode(isPrivacyMode); 
              promise.then(() => { 
                this.message = "已关闭"; 
                console.info('已成功关闭将窗口设置为隐私模式.'); 
              }).catch((err: BusinessError) => { 
                console.error('Failed to set the window to privacy mode. Cause: ' + JSON.stringify(err)); 
              }); 
            }) 
          } catch (exception) { 
            console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception)); 
          } 
        }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

实现效果

适配的版本信息

1. IDE:DevEco Studio 4.0.3.600

2. SDK:HarmoneyOS 4.0.0.41

分享
微博
QQ
微信
回复
2024-05-22 18:01:10
相关问题
HarmonyOS 如何禁止和录
166浏览 • 1回复 待解决
HarmonyOS如何实现当前禁止
553浏览 • 1回复 待解决
HarmonyOS 如何设置
195浏览 • 1回复 待解决
隐私模式设置后窗口是如何展示
1805浏览 • 1回复 待解决
如何、录、投
1280浏览 • 1回复 待解决
防止屏幕或者录
164浏览 • 1回复 待解决
HarmonyOS web使用隐私模式
296浏览 • 1回复 待解决
华为鸿蒙无法滚动
439浏览 • 1回复 待解决
HarmonyOS如何获取图片
385浏览 • 1回复 待解决
如何获取事件和数据
2051浏览 • 1回复 待解决
如何清除Web隐私模式下所有cookie。
345浏览 • 1回复 待解决
求告知如何实现防功能
458浏览 • 1回复 待解决
原来下滑出现功能哪去了?
6818浏览 • 1回复 待解决
HarmonyOS 密码登录页面未做防
155浏览 • 1回复 待解决
求大佬告知如何实现防功能
1887浏览 • 1回复 待解决