我想阻止用户截屏和录屏,我尝试为 android 和 ios 添加本机代码,对于 android 它完美地工作但对于 ios 它不起作用。
答案 0 :(得分:0)
在 MainActivity.java 上添加一行
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
答案 1 :(得分:0)
在 Flutter 中,没有这样的公共 API 可以阻止您截取屏幕截图以及您在问题中已经提到的原因,原生 Android 可以完美运行,但原生 iOS 没有,因为 iOS 没有提供任何此类公共可以限制用户截取屏幕截图的 API。
虽然有一种方法可以通知您已截取屏幕截图。您可以查看 UIApplicationUserDidTakeScreenshotNotification,但将在截取屏幕截图后之后发布通知。
答案 2 :(得分:-1)
最简单的方法是使用名为 flutter_windowmanager
的 flutter 包Future<void> secureScreen() async {
await FlutterWindowManager.addFlags(FlutterWindowManager.FLAG_SECURE);
}
@override
void initState() {
secureScreen();
super.initState();
}
如果您想禁用整个应用屏幕截图,只需在 main.dart 文件中的 main() 函数中调用 securescreen() 方法(如上定义)。
注意:由于 flutter_windowmanager 仅包装和公开底层 Android 特定的接口,因此没有计划或可能的 iOS 支持。对于那些对跨平台 FLAG_SECURE 功能感兴趣的人,此功能已在第三方 secure_application plugin 中重新创建。