【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%')
  }
}

【效果图】

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

相关推荐
m0_749690239 小时前
【寻迹校园 HarmonyOS NEXT 实战 41】用户照片、演示图与图标兜底:ReportMedia 的三层媒体策略
华为·harmonyos·arkts·媒体·隐私保护
夜雨声烦丿10 小时前
用 ArkTS 做好智能便签应用(端云协同):从核心 API 到可验证交互
华为·harmonyos
less_1213812 小时前
HarmonyOS WPS Open SDK:二开能力周回顾与联调地图
华为·harmonyos·wps
小白酷爱学习13 小时前
鸿蒙OS的开发语言与工具链:如何驾驭全新开发生态!
分布式·华为·架构·harmonyos
懿路向前14 小时前
【HarmonyOS学习笔记】2026-08-27 | 端插件踩坑与设计取舍
笔记·学习·harmonyos
夜雨声烦丿15 小时前
从需求到页面:日期计算器应用的 ArkTS 原生实现
开发语言·javascript·华为·harmonyos
梦想不只是梦与想16 小时前
鸿蒙 AGC:申请发布证书
harmonyos·appgallery·发布证书
大锅盖117 小时前
深色医疗青绿主题下ArkUI声明式架构:数字健康监测平台的多维数据可视化与状态管理实践
华为·harmonyos
骐骥118 小时前
学习:Webview的runJavaScript和runJavaScriptExt有什么区别
学习·鸿蒙
小雨青年18 小时前
【HarmonyOS 7 悬浮页签深度实战】04 HdsTabsController 如何协调页签切换与显隐
华为·harmonyos