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

【效果图】

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

相关推荐
漠北的哈士奇1 小时前
实验1.2 熟悉VRP基本操作
运维·网络·计算机网络·网络安全·华为·网络工程师·hcna
Android技术栈2 小时前
鸿蒙开发(NEXT/API 12)【硬件(注册智慧出行连接状态的监听)】车载系统
华为·车载系统·硬件架构·harmonyos·鸿蒙·鸿蒙系统·openharmony
训山2 小时前
【08】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Scroll容器与Tabs组件
笔记·学习·华为·harmonyos·鸿蒙系统
Bearin2 小时前
HarmonyOS面试题(持续更新中)
harmonyos·鸿蒙
儿歌八万首4 小时前
ArkUI自定义TabBar组件
flutter·harmonyos·arkui
23zhgjx-zgx11 小时前
以太网交换安全:端口安全
服务器·网络·华为·hcip·ensp
LXMXF12 小时前
RIP路由(已被淘汰)
运维·网络·华为
威哥爱编程12 小时前
10款好用的开源 HarmonyOS 工具库
arkts·鸿蒙·harmonyos next
灵猫小西13 小时前
鸿蒙HarmonyOS之选择相册文件(照片/视频)方法
鸿蒙·文件·工具类·相册