我正在开发一款具有非常敏感数据的应用,我们不希望将其保存在任何地方。在Android中我们可以禁用截屏。有没有办法在iOS上做同样的事情? 我不希望任何访问敏感信息的用户尝试截屏。
PS。我正在使用xamarin表单来创建应用程序,但如果这个功能可以通过客观的C / swift实现,它们总是可以通过xamarin来实现。
答案 0 :(得分:3)
您无法阻止用户在iOS上截屏。但是,由于您的担忧与安全性有关,因此您可能需要考虑的一件事是,当用户将应用程序最小化时,可以阻止操作系统在最近使用的应用程序列表中显示应用程序的屏幕截图,这可以完成。要这样做(使用Xamarin),您需要覆盖OnResignActivation
中的OnActivated
和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();
}
我意识到这并没有回答你的问题,但它可能会做得尽可能多。
答案 1 :(得分:2)
实际上你无法阻止用户截取屏幕截图,但iOS中根本不允许这样做。但是,当您能够检测到截屏时,您可以执行的操作。
这可能和它一样好。我没有Xamarin解决方案,这就是你在Swift中的表现:https://stackoverflow.com/a/18158483/4660602
用户为Obj-c和Swift提供了答案,因此如果您可以将代码成功移植到Xamarin,您可以在截屏后执行一些直观的操作,因为您无法阻止用户