当前位置: 首页 > article >正文

【HarmonyOS NEXT】实现防截屏功能

【需求】

  1. 登录不允许截屏
  2. 验证码页不允许截屏
  3. 首页允许截屏

【API】

方式一:

  1. 当app只有一个窗口时,可以使用getLastWindow
window.getLastWindow(context).then((lastWindow)=>{ lastWindow.setWindowPrivacyMode(flag) })

方式二:
当app存在多个窗口时

  1. 在EntryAbility中保存windowStage
AppStorage.setOrCreate('windowStage', windowStage);
  1. 在登录页调
windowStage.getMainWindowSync().setWindowPrivacyMode(flag)

【代码】

import { router, window } from '@kit.ArkUI'

@Entry
@Component
struct LoginPage {
  onPageShow(): void {
    this.setWindowPrivacyModeInPage(true)
  }

  onPageHide(): void {
    this.setWindowPrivacyModeInPage(false)
  }

  setWindowPrivacyModeInPage(flag: boolean) {
    const windowStage = AppStorage.get('windowStage') as window.WindowStage
    windowStage.getMainWindowSync().setWindowPrivacyMode(flag)
  }

  build() {
    Column({ space: 20 }) {
      Text('登录页').fontSize(30).padding({ top: 60 })
      Button('去验证码页').onClick(() => {
        router.replaceUrl({
          url: 'pages/Case/AntiScreenshot/CodePage'
        })
      })
      Button('去首页').onClick(() => {
        router.replaceUrl({
          url: 'pages/Case/AntiScreenshot/MainPage'
        })
      })
    }
    .height('100%')
    .width('100%')
  }
}

【效果图】

因为做的是防截屏功能,所以没有效果图~


http://www.kler.cn/news/331737.html

相关文章:

  • 《Linux从小白到高手》理论篇(十二):深入理解Linux的计划任务/定时任务
  • SpringBoot整合JPA 基础使用
  • 【PHP陪玩系统源码】游戏陪玩系统app,陪玩小程序优势
  • 《深度学习》OpenCV 指纹验证、识别
  • Python操作MongoDB
  • CSS 圆形边框与阴影
  • “衣依”服装销售平台:Spring Boot技术实践与创新
  • [CSP-J 2021] 插入排序
  • react crash course 2024(8) useEffect
  • 【单片机】单片机map表详细解析
  • 【Rust网络编程】开发一个图片代理和统计服务
  • SolveigMM Video Splitter方便快捷视频分割合并软件 V3.6.1309.3-供大家学习研究参考
  • 【基于布尔的盲注】
  • OpenAI o1与GPT-4o究竟强在哪里
  • python 实现linear algebra线性代数算法
  • 利用 notepad++ 初步净化 HaE Linkfinder 规则所提取的内容(仅留下接口行)
  • 每天一个数据分析题(四百八十九)- 主成分分析与因子分析
  • 记录一次docker报错无法访问文件夹,权限错误问题
  • Mac中访达显示/关闭隐藏文件
  • opencv实战项目(三十):使用傅里叶变换进行图像边缘检测