概述

#

TextInputClient 接口添加了 insertContent 方法,以允许 Android 的图像键盘功能将内容插入 Flutter 的 TextField

背景

#

从 Android 7.1 开始,IME(输入法编辑器或虚拟键盘)可以将图像和富内容发送到文本编辑器。这使用户能够将 gif、贴纸或上下文感知的富内容插入到文本字段中。

变更说明

#

当用户在 IME 中插入富内容时,平台会发送一个 TextInputClient.commitContent 通道消息,通知 Dart 代码 IME 已插入富内容。通道消息包含 JSON 格式的已插入内容的 MIME 类型、URI 和字节数据。

迁移指南

#

如果您之前实现了 TextInputClient 接口,请覆盖 insertContent 方法,以支持富内容插入或提供一个空实现。

要迁移,请实现 insertContent

迁移前的代码

dart
class MyCustomTextInputClient implements TextInputClient {
  // ...
}

迁移后的代码

dart
class MyCustomTextInputClient implements TextInputClient {
  // ...
  @override
  void insertContent() {
    // ...
  }
  // ...
}

您的 TextInputClient 实现可能不需要接收 IME 插入的富内容。在这种情况下,您可以将 insertContent 的实现留空,不会有任何后果。

dart
class MyCustomTextInputClient implements TextInputClient {
  // ...
  @override
  void insertContent() {}
  // ...
}

作为替代方案,您可以使用与默认 TextInputClient 类似的实现。要了解如何执行此操作,请查看 insertContent 实现

为防止接口发生破坏性更改,请使用 with TextInputClient 而不是 implements TextInputClient

时间线

#

已上线版本:3.8.0-1.0.pre
稳定版本:3.10.0

参考资料

#

API 文档

相关议题

相关 PR