为 TextInputClient 接口添加 insertContent 方法
概述
#为 TextInputClient
接口添加了 insertContent
方法,以允许 Android 的图像键盘功能将内容插入 Flutter 的 TextField
。
背景
#从 Android 7.1 开始,IME(输入法编辑器或虚拟键盘)可以将图像和富内容发送到文本编辑器。这使用户能够将 gif、贴纸或上下文感知的富内容插入到文本字段中。
变更说明
#当用户在 IME 中插入富内容时,平台会发送一个 TextInputClient.commitContent
通道消息,通知 Dart 代码 IME 已插入富内容。通道消息包含 JSON 格式的已插入内容的 MIME 类型、URI 和字节数据。
迁移指南
#如果您之前实现了 TextInputClient
接口,请覆盖 insertContent
方法,以支持富内容插入或提供一个空实现。
要迁移,请实现 insertContent
。
迁移前的代码
class MyCustomTextInputClient implements TextInputClient {
// ...
}
迁移后的代码
class MyCustomTextInputClient implements TextInputClient {
// ...
@override
void insertContent() {
// ...
}
// ...
}
您的 TextInputClient
实现可能不需要接收 IME 插入的富内容。在这种情况下,您可以将 insertContent
的实现留空,不会有任何后果。
class MyCustomTextInputClient implements TextInputClient {
// ...
@override
void insertContent() {}
// ...
}
作为替代方案,您可以使用与默认 TextInputClient
类似的实现。要了解如何执行此操作,请查看 insertContent 实现。
为防止接口发生破坏性更改,请使用 with TextInputClient
而不是 implements TextInputClient
。
时间线
#已上线版本:3.8.0-1.0.pre
稳定版本:3.10.0
参考资料
#API 文档
相关议题
相关 PR