跳到主内容

保护你应用的敏感内容

了解如何保护 Flutter 应用中的敏感内容。

SensitiveContent 组件允许您防止包含敏感内容(例如密码)的屏幕被投屏。要了解更多信息,请查看以下两分钟的“每周组件(Widget of the Week)”视频。

在新标签页中观看 YouTube 视频:“SensitiveContent | Flutter 每周组件”

关于 SensitiveContent 组件

#

您可以在应用中使用 SensitiveContent 组件,将子 Widget 的内容敏感度设置为以下 ContentSensitivity 值之一:notSensitivesensitiveautoSensitive。您选择的模式决定了在媒体投屏过程中是否应遮盖(黑屏)设备屏幕以保护敏感数据。

您的应用中可以包含任意数量的 SensitiveContent 组件,但如果其中任何一个组件的值为 sensitive,则整个屏幕在媒体投屏期间都会被遮盖。因此,对于大多数用例,在应用组件树中使用多个 SensitiveContent 组件相比仅使用一个并无优势。

此功能适用于 Android API 35 及以上版本,在较低的 API 版本或其他平台上没有影响。

使用 SensitiveContent 组件

#

对于您希望防止媒体投屏的内容(例如 MySensitiveContent() 组件),您可以使用 SensitiveContent 组件对其进行包裹,如下例所示:

dart
class MyWidget extends StatelessWidget {
  ...
  Widget build(BuildContext context) {
    return SensitiveContent(
      sensitivity: ContentSensitivity.sensitive,
      child: MySensitiveContent(),
    );
  }
}

在 Android API 34 及以下版本上运行时,屏幕在媒体投屏期间不会被遮盖。该组件将存在于组件树中,但不会产生其他影响,您无需在不支持此功能的平台上刻意避免使用 SensitiveContent

更多信息

#

有关更多信息,请访问 SensitiveContentContentSensitivity 的 API 文档。