ScreenShield
ScreenShield是一个iOS库,提供了简单的方式来保护您的应用程序内容不被截图、屏幕录制或其他屏幕捕获方法捕获或记录。它通过在您的视图之上添加一个安全层来实现,这阻止了大多数屏幕捕获机制记录底层内容。
该库支持UIKit和SwiftUI,并可以在两者中轻松使用。它还提供了一种开始和停止监听屏幕录制的方法,并且可以根据需要使用不同类型的视图进行自定义。
示例
要运行示例项目,请克隆仓库,然后首先从Example目录中运行 pod install
安装
CocoaPods
要使用CocoaPods安装ScreenShield,请在您的Podfile中添加以下行
pod 'ScreenShield'
然后,运行 pod install 来安装库及其依赖项。
Swift Package Manager
要使用Swift Package Manager安装ScreenShield,请在Package.swift中添加以下行
dependencies: [ .package(url: "https://github.com/JayantBadlani/ScreenShield", from: "0.1.0") ] 然后,运行 swift package update 来下载库及其依赖项。
用法
要在iOS应用程序中使用ScreenShield,只需导入库并调用其方法来保护您的视图并监听屏幕录制。
以下是如何使用UIKit与库的示例
import UIKit
import ScreenShield
class ViewController: UIViewController {
override func viewDidAppear() {
super.viewDidAppear()
// Protect ScreenShot
ScreenShield.shared.protect(view: self.view)
// Protect Screen-Recording
ScreenShield.shared.protectFromScreenRecording()
}
}
以下是如何使用SwiftUI与库的示例
import SwiftUI
import ScreenShield
struct ContentView: View {
var body: some View {
Text("Hello, World!")
.protectScreenshot() // Protect the view
.onAppear {
ScreenShield.shared.protectFromScreenRecording // Protect Screen-Recording
}
}
}
就是这样!只需几行代码,您就可以保护您的内容,并防止它被不必要的屏幕捕获机制记录或捕获。
注意:在iOS应用程序中防止屏幕捕获可能具有挑战性,因为它不是iOS操作系统直接支持的。在这个库中,我们已自定义了代码并应用了Hack/Workarounds来实现预期的结果。已知的UI混乱问题是已知会发生的。要解决布局问题,请在UI加载完毕后添加“ScreenShield”保护到您的视图中。在viewDidLoad方法中实现“ScreenShield”保护可能有助于缓解布局问题。请注意,此库目前处于开发中,并且尚未进行全面测试。欢迎贡献。
许可证ScreenShield可供使用MIT许可证。有关更多信息,请参阅LICENSE文件。