插入內容文字輸入客戶端
在 `TextInputClient` 介面中新增一個方法, 讓 Android 虛擬鍵盤可以將豐富內容插入 Flutter 文字欄位 (text field)。
摘要
#
在 TextInputClient 介面中新增了 insertContent 方法,
允許 Android 的圖片鍵盤功能
將內容插入到 Flutter TextField 中。
背景
#自 Android 7.1 起,IME(輸入法編輯器或虛擬鍵盤)可以將 圖片與豐富內容傳送到文字編輯器。 這讓使用者能夠在文字欄位 (text field) 中插入 gif、貼圖, 或是與情境相關的豐富內容。
變更說明
#
當使用者在 IME 中插入豐富內容時,平台會
傳送 TextInputClient.commitContent 通道訊息,
通知 Dart 程式碼 IME 已插入豐富內容。
該通道訊息會以 JSON 形式包含
插入內容的 mime type、URI 及 bytedata。
遷移指南
#
如果你之前有實作 TextInputClient 介面,請覆寫
insertContent,以支援豐富內容插入
或提供一個空的實作。
要進行遷移,請實作 insertContent。
遷移前的程式碼:
class MyCustomTextInputClient implements TextInputClient {
// ...
}
遷移後的程式碼:
class MyCustomTextInputClient implements TextInputClient {
// ...
@override
void insertContent() {
// ...
}
// ...
}
您的 TextInputClient 實作可能不需要從 IME 插入豐富內容(rich content)的能力。在這種情況下,您可以將 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:
Unless stated otherwise, the documentation on this site reflects Flutter 3.44.0. Page last updated on 2026-06-14. View source or report an issue.