跳至主要内容

插入内容文本输入客户端

摘要

#

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

上下文

#

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

更改说明

#

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

迁移指南

#

如果您之前实现了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