【HarmonyOS NEXT】实现防截屏功能

news/2024/10/5 14:58:09/

【需求】

  1. 登录不允许截屏
  2. 验证码页不允许截屏
  3. 首页允许截屏

【API】

方式一:

  1. 当app只有一个窗口时,可以使用getLastWindow
window.getLastWindow(context).then((lastWindow)=>{ lastWindow.setWindowPrivacyMode(flag) })

方式二:
当app存在多个窗口时

  1. 在EntryAbility中保存windowStage
AppStorage.setOrCreate('windowStage', windowStage);
  1. 在登录页调
windowStage.getMainWindowSync().setWindowPrivacyMode(flag)

【代码】

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

【效果图】

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


http://www.ppmy.cn/news/1535003.html

相关文章

TB6612电机驱动模块(STM32)

目录 一、介绍 二、模块原理 1.原理图 2.电机驱动原理 三、程序设计 main.c文件 Motor.h文件 Motor.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 TB6612FNG 是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流 MOSFET-H 桥结构&#xff…

ThreadLocal内存泄漏分析

一、ThreadLocal内存泄漏分析 1.1 ThreadLocal实现原理 1.1.1、set(T value)方法 查看ThreadLocal源码的 set(T value)方法,可以发现数据是存在了ThreadLocalMap的静态内部类Entry里面 其中key为使用弱引用的ThreadLocal实例,value为set传入的值。核…

【AI知识点】负对数似然损失函数(Negative Log-Likelihood Loss,NLL)

负对数似然损失函数(Negative Log-Likelihood Loss,NLL) 是机器学习,尤其是分类问题中常用的一种损失函数。它用于衡量模型预测的概率分布与真实标签之间的差异。负对数似然损失函数的目标是最大化正确类别的预测概率,…

C#通用文档识别挂接示例、手写体识别接口

通用文档识别服务接口支持扫描文档、长微博、自然场景下的各种印刷体文字、手写体文字、繁体文字、英文、阿拉伯文等文字的识别,提供免费测试与在线体验服务 部署方式灵活多样,支持标准化HTTP、WebService接口集成,支持私有化部署&#xff0c…

用SpringBoot搭建高效校园资料分享系统

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

怎么提取视频里的音频?非常简单的提取音频方法

怎么提取视频里的音频?在现代数字媒体环境中,视频和音频的结合已成为信息传播和创作的重要手段。随着互联网的发展,视频内容日益丰富,从社交媒体短视频到在线课程,再到电影和纪录片,音频在这些内容中的角色…

Vue+NestJS项目实操(图书管理后台)

一、项目搭建 前端基于vben进行二次开发 在Github下载vben框架,搜索vben即可 下载地址:https://github.com/vbenjs/vue-vben-admin 下载完成后,进行安装依赖,使用命令: // 下载依赖 pnpm install// 运行项目 pnpm …

【Docker从入门到进阶】04.高效实践

4. 高效实践 在现代软件开发中,Docker和容器技术使得应用程序的开发、部署和管理变得更为高效。然而,伴随而来的也是一些挑战,比如镜像优化、性能调优、安全性管理以及持续集成和持续交付(CI/CD)的集成等。以下是一些…