Ale*_*toc 7 screenshot ios whatsapp swift
我试图模仿 WhatsApp 在拍摄“查看一次”照片的屏幕截图时所做的事情,即为敏感内容添加叠加层(见下图)
从我在文档中看到的,我们只有在截图后才会收到通知。
我想知道他们是如何检测何时拍摄屏幕截图以添加此叠加层的
最后,如果用户尝试录制屏幕,我认为此通知足以添加叠加层,但我不知道当他们截屏时该怎么做。
我认为最好的解决方案是使用此扩展来阻止屏幕截图。
extension UIView {
func makeSecure() {
DispatchQueue.main.async {
let field = UITextField()
field.isSecureTextEntry = true
self.addSubview(field)
field.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
field.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
self.layer.superlayer?.addSublayer(field.layer)
field.layer.sublayers?.first?.addSublayer(self.layer)
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用它:
let yourView = UIView()
yourView.makeSecure()
Run Code Online (Sandbox Code Playgroud)
它将阻止用户截取屏幕截图或记录特定视图。
如果您需要在用户尝试截图或录制时显示占位符,请检查此存储库。
示例代码: https: //github.com/kuttz/SecureYourView
结果: https: //github.com/kuttz/DemosAndScreenShots/blob/main/SecureYourView/Demo.gif
归档时间: |
|
查看次数: |
1130 次 |
最近记录: |