為 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