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

【效果图】

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

相关推荐
Georgewu1 小时前
【HarmonyOS】应用开发拖拽功能详解
harmonyos
塞尔维亚大汉1 小时前
鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程
源码·harmonyos
Fanmeang4 小时前
OSPF高级特性之FRR
运维·网络·华为·ip·ospf·spf·frr
kumalab4 小时前
HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
华为·harmonyos
别说我什么都不会5 小时前
【OpenHarmony】鸿蒙开发之xml2jsDemo
harmonyos
HarmonyOS_SDK8 小时前
HarmonyOS免密认证方案 助力应用登录安全升级
harmonyos
zhanshuo10 小时前
鸿蒙操作系统核心特性解析:从分布式架构到高效开发的全景技术图谱
harmonyos
塞尔维亚大汉10 小时前
鸿蒙内核源码分析(编译过程篇) | 简单案例窥视编译全过程
源码·harmonyos
别说我什么都不会10 小时前
【OpenHarmony】鸿蒙开发之ohos_beacon_library
harmonyos
瑶光守护者11 小时前
【卫星通信】超低比特率语音编解码器(ULBC)的信道特性评估
深度学习·华为·卫星通信·3gpp·ulbc