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

【效果图】

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

相关推荐
liuhaikang3 分钟前
【鸿蒙HarmonyOS Next App实战开发】古诗书院 应用技术实践
华为·harmonyos
哈哈你是真的厉害1 小时前
Windows系统通过wsl Ubuntu24.04本地安装OpenJiuwen Studio的完整安装教程
人工智能·华为·ai·大模型·agent·智能体·openjiuwen
胡琦博客1 小时前
基于开发者空间鸿蒙云手机体验鸿蒙开发
华为·智能手机·harmonyos
kirk_wang1 小时前
Flutter `audio_service` 在鸿蒙端的后台音频服务适配实践
flutter·移动开发·跨平台·arkts·鸿蒙
namehao46512 小时前
从HarmonyOS基础认证到赋能资源建设:我的鸿蒙开发进阶之路
华为·harmonyos
航Hang*15 小时前
第十五章:网络系统建设与运维(高级)—— 总复习
网络·华为·ensp·期末·复习
前端不太难15 小时前
用一张“状态扩散图”,定位 RN 列表性能风险
react.js·harmonyos
坚持学习前端日记16 小时前
桌面端与移动端JS桥技术对比及跨平台实现
开发语言·javascript·harmonyos
彭不懂赶紧问17 小时前
鸿蒙NEXT开发浅进阶到精通15:从零搭建Navigation路由框架
前端·笔记·harmonyos·鸿蒙
钟睿1 天前
HarmonyOS弹窗+bindSheet半模态+浮层通用解决方案覆盖全业务场景
android·harmonyos