跳至主要內容

插入內容文字輸入客戶端

摘要

#

TextInputClient 介面中新增了 insertContent 方法,以允許 Android 的圖片鍵盤功能將內容插入 Flutter 的 TextField 中。

背景

#

自 Android 7.1 起,IME(輸入法編輯器或虛擬鍵盤)可以將圖片和豐富內容傳送到文字編輯器中。這允許使用者將 GIF、貼圖或上下文感知豐富內容插入文字欄位中。

變更說明

#

當使用者在 IME 中插入豐富內容時,平台會發送一個 TextInputClient.commitContent 通道訊息,通知 Dart 程式碼 IME 插入了豐富內容。通道訊息包含插入內容的 mime 類型、URI 和位元組資料,格式為 JSON。

遷移指南

#

如果您之前實作了 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