Flutter中禁止截屏
flutter开发过程中,有些项目安全策略要求比较高,比如不允许截屏的要求,代码简单,只要在工程目录的下android,在MainActivity的onCreate方法中添加如下代码:
if (!BuildConfig.DEBUG) {
//禁止截屏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
//设置进入后台后,多任务列表显示app为空白页,安全策略之一
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
}
最好是单独打开项目中的android工程,方便添加依赖关系;
我是在dubug模式下没有禁止,方便测试截屏,打release包时禁止;
ios没有很好的禁止截屏的方法,只能在给出提示应用截屏了,做法是在AppDelegate.m文件下添加如下代码:
// 系统截屏通知
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(notificationScreenshot:) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
- (void)notificationScreenshot:(NSNotification*)notification{
[[[UIAlertViewalloc]initWithTitle:nilmessage:@"截屏有风险,请谨慎操作~"delegate:nilcancelButtonTitle:@"知道了"otherButtonTitles:nil,nil]show];
}
示例截图: