【问题标题】:Xamarin iOS: Disable screenshot optionXamarin iOS:禁用屏幕截图选项
【发布时间】:2017-03-01 12:48:42
【问题描述】:
我正在开发一个包含非常敏感数据的应用程序,我们不希望将其保存在任何地方。在 Android 中,我们可以禁用截屏。有没有办法在 iOS 上做同样的事情?
我不希望任何访问敏感信息的用户尝试截屏。
PS。我正在使用 xamarin 表单来创建应用程序,但如果可以通过目标 C/swift 实现此功能,则始终可以通过 xamarin 实现。
【问题讨论】:
标签:
ios
objective-c
swift
xamarin
xamarin.forms
【解决方案1】:
您无法阻止用户在 iOS 上截屏。但是,由于您的担忧与安全相关,您可能需要考虑的一件事是当用户最小化应用程序时,防止操作系统在最近使用的应用程序列表中显示您的应用程序的屏幕截图,这是可以做到的。为此(使用 Xamarin),您需要在 AppDelegate 中覆盖 OnResignActivation 和 OnActivated:
// 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();
}
我知道这并不能回答您的问题,但可以做到这一点。