跳转至正文

保护应用的敏感内容

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

SensitiveContent widget 可阻止包含敏感内容(如密码)的屏幕被投射。要了解更多信息,请观看以下两分钟「每周 widget」视频:

Watch on YouTube in a new tab: "SensitiveContent | Flutter widget of the week"

关于 SensitiveContent widget

#

你可以在应用中使用 SensitiveContent widget,将子 widget 的内容敏感度设置为以下 ContentSensitivity 值之一:notSensitivesensitiveautoSensitive。所选模式决定在媒体投射期间是否应遮挡(黑屏)设备屏幕以保护敏感数据。

你可以在应用中放置任意数量的 SensitiveContent widget,但若 任一 widget 的内容值为 sensitive,则媒体投射期间整个屏幕都会被遮挡。因此,在大多数用例中,使用多个 SensitiveContent widget 相比在应用的 widget 树中只放一个并无优势。

该功能在 Android API 35+ 上可用,在更低 API 版本或其他平台上无效。

使用 SensitiveContent widget

#

对于希望防止媒体屏幕共享的内容(例如 MySensitiveContent() widget),可按以下示例用 SensitiveContent widget 包裹:

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

在 Android API 34 及以下版本运行时,媒体投射期间屏幕不会被遮挡。该 widget 会存在于树中但无其他效果,你无需在不支持此功能的平台上避免使用 SensitiveContent

更多信息

#

更多信息请访问 SensitiveContentContentSensitivity API 文档。