react native 中实现个别页面禁止截屏
这里主要用到了原生模块,下面贴出FlagSecureModule.java的代码
package com.studyproj.flagsecure; import android.util.Log; import android.widget.Toast; import android.view.WindowManager; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import java.util.List; public class FlagSecureModule extends ReactContextBaseJavaModule { FlagSecureModule(ReactApplicationContext reactContext) { super(reactContext); } @Override public String getName() { return "FlagSecure"; } @ReactMethod public void setFlag() { Toast.makeText(getReactApplicationContext(), "setFlag", Toast.LENGTH_SHORT).show(); getCurrentActivity().runOnUiThread(new Runnable() { @Override public void run() { getCurrentActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); // 禁止截屏 } }); } @ReactMethod public void clearFlag() { Toast.makeText(getReactApplicationContext(), "clearFlag", Toast.LENGTH_SHORT).show(); getCurrentActivity().runOnUiThread(new Runnable() { @Override public void run() { getCurrentActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); // 禁止截屏 } }); } }
然后在componentDidMount和componentWillUnmount两个生命周期中分别调用setFlag和clearFlag这两个方法就可以了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用