我希望我的 Xamarin Forms 应用程序禁用屏幕截图。有办法这样做吗? 注意:我找到了纯 Android 和 iOS 版本的解决方案,但我需要 Xamarin 解决方案。如果有办法以某种方式嵌入纯 Android 和 iOS 解决方案,我也接受。 谢谢:)
您可以在 MainActivity.cs (Xamarin) 上添加此行来禁用屏幕截图:
protected override void OnCreate(Bundle savedInstanceState)
{
...
...
Window.SetFlags(WindowManagerFlags.Secure, WindowManagerFlags.Secure);
}
我们无法停止截图。我们可以将所有屏幕截图设为黑屏。在AppDelegate.cs下添加
public override UIWindow Window { get; set; }
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
Window = new UIWindow(frame: UIScreen.MainScreen.Bounds);
var initialViewController = new SplashViewController();
Window.RootViewController = initialViewController;
Window.MakeKeyAndVisible();
MakeSecureWindow();
return base.FinishedLaunching(app, options);
}
public void MakeSecureWindow()
{
var field = new UITextField();
field.SecureTextEntry = true;
Window.AddSubview(field);
field.CenterYAnchor.ConstraintEqualTo(Window.CenterYAnchor).Active = true;
field.CenterXAnchor.ConstraintEqualTo(Window.CenterXAnchor).Active = true;
Window.Layer.SuperLayer?.AddSublayer(field.Layer);
field.Layer.Sublayers.LastOrDefault().AddSublayer(Window.Layer);
}