Xamarin iOS:禁用屏幕截图选项

The*_*per 2 objective-c ios xamarin xamarin.forms swift

我正在开发一个包含非常敏感数据的应用程序,我们不想将其保存在任何地方。在 Android 中,我们可以禁用截屏。有没有办法在iOS上做同样的事情?我不希望任何访问敏感信息的用户尝试截取屏幕截图。

附注。我正在使用 xamarin 表单来创建应用程序,但是如果可以通过目标 C/swift 实现此功能,则它们始终可以通过 xamarin 实现。

Luk*_*ier 5

您无法阻止用户在 iOS 上截取屏幕截图。但是,由于您的担忧与安全相关,因此您可能需要考虑的一件事是在用户最小化应用程序时阻止操作系统在最近使用的应用程序列表中显示您的应用程序的屏幕截图,这是可以做到的。为此(使用 Xamarin),您需要覆盖OnResignActivationOnActivated在您的AppDelegate

// Hide app state in recently used apps list
public override void OnResignActivation(UIApplication application)
{
    var view = new UIView(Window.Frame)
    {
        Tag = new nint(101),
        BackgroundColor = UIColor.White
    }
    Window.AddSubview(view);
    Window.BringSubviewToFront(view);
}

// Remove window hiding app content when app is resumed
public override void OnActivated(UIApplication application)
{
    var view = Window.ViewWithTag(new nint(101));
    view?.RemoveFromSuperview();
}
Run Code Online (Sandbox Code Playgroud)

我意识到这不能回答你的问题,但它可能会尽可能多。