通过覆盖视频保护iOS应用程序的内容

通过覆盖视频保护iOS应用程序的内容,ios,screenshot,Ios,Screenshot,我正在开发一个Ionic框架应用程序,我们在一些页面上显示了关键信息。我们希望防止用户在这些页面上截图。我们可以在Android平台上实现这一点;然而,在iOS设备上,我们无法做到这一点,因为苹果目前还没有提供公共API 我们发现,但是他们的价格对于我们需要的功能来说太贵了。因此,我们想到了付费流媒体服务如何阻止用户截屏他们的视频,我们认为覆盖视频元素可能会欺骗操作系统,并通过DRM提供该部分的空白屏幕截图 我发现Safari使用了,但互联网上没有那么多的实现或指南来指导如何使用这种应用程序。你

我正在开发一个Ionic框架应用程序,我们在一些页面上显示了关键信息。我们希望防止用户在这些页面上截图。我们可以在Android平台上实现这一点;然而,在iOS设备上,我们无法做到这一点,因为苹果目前还没有提供公共API

我们发现,但是他们的价格对于我们需要的功能来说太贵了。因此,我们想到了付费流媒体服务如何阻止用户截屏他们的视频,我们认为覆盖视频元素可能会欺骗操作系统,并通过DRM提供该部分的空白屏幕截图


我发现Safari使用了,但互联网上没有那么多的实现或指南来指导如何使用这种应用程序。你认为这对我们正在努力实现的目标是可行的吗?DRM是否适用于非流媒体视频?你能给出实施DRM EME的步骤吗?

我相信你知道开发者不能完全阻止用户/应用截图。在iOS中,没有专门的API来阻止截屏;除此之外,您/开发者/应用程序无权删除用户照片库中的照片(这是有意义的);这就是为什么与安卓相比,iOS有问题的原因

下面,我将尝试为您提供一些建议,您可能会发现这些建议有助于进一步的调查:

  • 有一种方法可以检测到使用iOS拍摄的屏幕截图
对于iOS 7+,您可以编写如下内容:

NotificationCenter.default.addObserver(
    forName: UIApplication.userDidTakeScreenshotNotification,
    object: nil, queue: nil) { _ in
        //what to execute after screenshot?
} 
所以,也许在一个用户截图之后,你的应用程序可以做一些事情,例如,警告、通知、向其他用户显示警报(如果有很多用户),等等

  • 此外,您还可以访问
    Cordova Plugin
    ,查看它是否有效:
在GitHub页面上的README.md文件中,它说

这是一个cordova插件,用于在android和ios中启用/禁用屏幕截图


最后,
ScreenShieldKit
的工作方式是,它为开发人员提供了一组类似于
UIKit
UI
组件(图像视图和标签)。图像和文本可能被渲染为受DRM保护的视频,这就是为什么它们在屏幕截图中不可见的原因。

我不知道如何回答您的问题,但您无法阻止用户拍摄屏幕上的内容。也许你可以阻止他们截屏,但他们仍然可以只拍一张物理屏幕的照片。我觉得这个主意很傻。如果你不想让你的用户知道一些信息,你就不能向他们展示。如果这些信息对他们来说非常有价值,并且他们想要这些信息,那么他们很可能只会抓起一个摄像头,在屏幕上拍照。@IsaacCWay是的,我知道我们不能让他们用真正的摄像头拍照。但我试图实现至少限制用户拍摄该页面的屏幕截图,
userDidTakeScreenshotNotification
仅在屏幕截图后触发。我们可以警告或通知他们,但这毫无意义,因为他们已经拍了一张截图。你提到的cordova插件在iOS中不起作用,我以前已经试过了。对于
ScreenShieldKit
,这正是我想要实现的,但我不想将所有元素都转换成视频,而是想在我的div上放一个视频元素,在那里填充所有数据,让iOS误以为它是视频,然而,这是一个透明的方案。虽然我不熟悉如何为视频实施DRM。嗨,Rich,我目前也在研究这个方案,并且正在制定一个类似的策略。我在一条评论中发现了这一点,这似乎是可能的:>顺便说一句:根据我的记忆,只要你对HLS使用SAMPLE-AES方法,你也会得到截图阻塞。(不保证……但似乎是实际行为)。-Anders 2月29日20日5:15这听起来很吸引我。另见: