插入内容文本输入客户端
概述
#在 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