保护你应用的敏感内容
了解如何保护 Flutter 应用中的敏感内容。
SensitiveContent 组件允许您防止包含敏感内容(例如密码)的屏幕被投屏。要了解更多信息,请查看以下两分钟的“每周组件(Widget of the Week)”视频。
关于 SensitiveContent 组件
#
您可以在应用中使用 SensitiveContent 组件,将子 Widget 的内容敏感度设置为以下 ContentSensitivity 值之一:notSensitive、sensitive 或 autoSensitive。您选择的模式决定了在媒体投屏过程中是否应遮盖(黑屏)设备屏幕以保护敏感数据。
您的应用中可以包含任意数量的 SensitiveContent 组件,但如果其中任何一个组件的值为 sensitive,则整个屏幕在媒体投屏期间都会被遮盖。因此,对于大多数用例,在应用组件树中使用多个 SensitiveContent 组件相比仅使用一个并无优势。
此功能适用于 Android API 35 及以上版本,在较低的 API 版本或其他平台上没有影响。
使用 SensitiveContent 组件
#
对于您希望防止媒体投屏的内容(例如 MySensitiveContent() 组件),您可以使用 SensitiveContent 组件对其进行包裹,如下例所示:
class MyWidget extends StatelessWidget {
...
Widget build(BuildContext context) {
return SensitiveContent(
sensitivity: ContentSensitivity.sensitive,
child: MySensitiveContent(),
);
}
}
在 Android API 34 及以下版本上运行时,屏幕在媒体投屏期间不会被遮盖。该组件将存在于组件树中,但不会产生其他影响,您无需在不支持此功能的平台上刻意避免使用 SensitiveContent。
更多信息
#有关更多信息,请访问 SensitiveContent 和 ContentSensitivity 的 API 文档。