【HarmonyOS NEXT】实现防截屏功能

【需求】

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

【API】

方式一:

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

方式二:

当app存在多个窗口时

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

【代码】

ts 复制代码
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%')
  }
}

【效果图】

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

相关推荐
soulermax3 小时前
华为数字芯片机考2025合集2已校正
嵌入式硬件·华为·fpga开发·系统架构·硬件架构
Pigwantofly8 小时前
鸿蒙ArkTS实战:从零打造智能表达式计算器(附状态管理+路由传参核心实现)
android·华为·harmonyos
一只栖枝10 小时前
华为数通不同级别的认证路径和要求是什么?
华为·hcie·hcia·hcip·数通·计算机网络基础·华为实验考试
soulermax10 小时前
华为数字芯片机考2025合集5已校正
华为·fpga开发
绿柱石12 小时前
华为AR1200密码忘记
运维·服务器·华为
蒜白12 小时前
40--华为IPSec VPN实战指南:构建企业级加密通道
华为·网络工程师·ipsec
别说我什么都不会12 小时前
OpenHarmony 实战开发 —— 在自绘编辑框中使用输入法
嵌入式·harmonyos
Georgewu13 小时前
【HarmonyOS 5】鸿蒙实现手写板
前端·华为·harmonyos
御承扬17 小时前
从零开始开发纯血鸿蒙应用之语音输入
华为·harmonyos
rigidwill66618 小时前
华为机试—最大最小路
数据结构·c++·算法·华为od·华为·职场和发展·并查集