我想防止用户采取屏幕截图和屏幕录制,我试图添加本地代码的android和ios,它完美地工作,但对于ios它不工作。
发布于 2021-02-24 20:53:19
在MainActivity.java上添加行
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);发布于 2021-02-24 21:07:18
在Flutter中,没有这样的公共API可以阻止你截图,这也是你在问题中提到的原生Android可以完美工作,但原生iOS不行的原因,因为iOS没有提供任何这样的公共API来限制用户截图。
尽管有一种方法可以通知你截图已经完成。你可以看看UIApplicationUserDidTakeScreenshotNotification,但是在截图之后,通知将会在上发布。
发布于 2021-02-24 21:08:00
最简单的方法是使用一个名为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只包装和公开了一个特定于安卓的底层界面,因此没有计划或可能提供iOS支持。对于那些对跨平台FLAG_SECURE功能感兴趣的人,已在第三方secure_application plugin中重新创建了此功能。
https://stackoverflow.com/questions/66351172
复制相似问题