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

【效果图】

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

相关推荐
编程乐学3 小时前
鸿蒙非原创--DevEcoStudio开发的奶茶点餐APP
华为·harmonyos·deveco studio·鸿蒙开发·奶茶点餐·鸿蒙大作业
鸣弦artha4 小时前
Flutter框架跨平台鸿蒙开发 —— Text Widget:文本展示的艺术
flutter·华为·harmonyos
lili-felicity5 小时前
React Native for Harmony:Rating 评分组件- 支持全星 / 半星 / 禁用 / 自定义样式
react native·华为·harmonyos
grd45 小时前
RN for OpenHarmony 小工具 App 实战:屏幕尺子实现
笔记·harmonyos
No Silver Bullet5 小时前
HarmonyOS NEXT开发进阶(十九):如何在 DevEco Studio 中查看已安装应用的运行日志
华为·harmonyos
大雷神7 小时前
HarmonyOS智慧农业管理应用开发教程--高高种地
华为·harmonyos
南村群童欺我老无力.8 小时前
Flutter 框架跨平台鸿蒙开发 - 开发双人对战五子棋游戏
flutter·游戏·华为·typescript·harmonyos
夜雨声烦丿8 小时前
Flutter 框架跨平台鸿蒙开发 - 消消乐游戏开发教程
flutter·游戏·华为·harmonyos
数通工程师9 小时前
IPv4和IPv6 地址分配:从划分到工具全解析
网络·网络协议·tcp/ip·华为
夜雨声烦丿9 小时前
Flutter 框架跨平台鸿蒙开发 - 数独求解器开发教程
flutter·游戏·华为·harmonyos