插入內容文字輸入客戶端
摘要
#在 TextInputClient
介面中新增了 insertContent
方法,以允許 Android 的圖片鍵盤功能將內容插入 Flutter 的 TextField
中。
背景
#自 Android 7.1 起,IME(輸入法編輯器或虛擬鍵盤)可以將圖片和豐富內容傳送到文字編輯器中。這允許使用者將 GIF、貼圖或上下文感知豐富內容插入文字欄位中。
變更說明
#當使用者在 IME 中插入豐富內容時,平台會發送一個 TextInputClient.commitContent
通道訊息,通知 Dart 程式碼 IME 插入了豐富內容。通道訊息包含插入內容的 mime 類型、URI 和位元組資料,格式為 JSON。
遷移指南
#如果您之前實作了 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
除非另有說明,本網站上的文件反映了 Flutter 的最新穩定版本。頁面最後更新於 2024-04-04。 檢視來源 或 回報問題。