保护 iOS 上的敏感内容。
Unscreenshottable 可以保护你的视图免受以下侵害:
在截屏期间隐藏你的视图,可以选择用另一个视图替换它。
注意
Unscreenshottable 的屏幕截图保护依赖于内部的、未文档化的 iOS 视图层次结构。 可能 可以安全地
提交到 App Store,但如果 Apple 更改视图层次结构,则可能会在未来的 iOS 版本中停止工作。 该库包含一个单元测试,用于检查所需的内部视图的可用性。
在屏幕共享时(例如通过 AirPlay)隐藏你的视图。
在你的应用程序不活动时(例如在任务切换期间)隐藏你的视图。
注意
你还可以使用自 iOS 15 起可用的 .privacySensitive()
修饰符来保护视图,但 Unscreenshottable 允许你用另一个视图替换你的内容,并支持 iOS 14。
你可以将 protected
修饰符应用于你的顶级视图,通常是 ContentView
import SwiftUI
import Unscreenshottable
@main
struct UnscreenshottableDemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.protected {
Text("No screenshots nor screen sharing, please.")
}
}
}
}
如果只想限制保护类型(默认为全部三个),.protected
修饰符可以接受一个可选参数。 你甚至可以组合多个保护
ContentView()
.protected(from: inactivity) {
Image("logo")
}
.protected(from: [.screenshots, .screenSharing]) {
Text("No screenshots nor screen sharing, please.")
}
使用包 URL 或搜索 SwiftUI-Unscreenshottable 包:https://github.com/markiv/SwiftUI-Unscreenshottable.git。
有关如何集成包依赖项,请参阅将包依赖项添加到您的应用程序 文档。