为 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