【问题标题】: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 中覆盖 OnResignActivationOnActivated

    // 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();
    }
    

    我知道这并不能回答您的问题,但可以做到这一点。

    【讨论】:

      【解决方案2】:

      确实没有办法阻止用户截屏,iOS 根本不允许这样做。但是,您可以做的是在您能够检测到屏幕截图时执行操作。

      这可能是最好的。我没有 Xamarin 解决方案,这就是你在 Swift 中的做法:https://stackoverflow.com/a/18158483/4660602

      用户提供了 Obj-c 和 Swift 的答案,因此如果您可以将该代码成功移植到 Xamarin,您可以在截屏后执行一些直观的操作,因为您无法阻止用户截屏.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-09
        相关资源
        最近更新 更多