Flutter項(xiàng)目中遇到在安卓端,輸入框不能長按粘貼,其它像iOS端、瀏覽器功能都是正常的。查詢各種資料,部分說是官方為了避免手勢(shì)沖突禁用了長按粘貼功能。各種查資料、各種嘗試都開啟不了這一功能,而項(xiàng)目緊急那只能曲線救國了。
第一個(gè)方案:
因?yàn)閔5復(fù)制文本內(nèi)容到剪貼板這塊是沒問題的,那么h5是否可以直接獲取剪貼板中的內(nèi)容直接填寫到輸入框中,然而...,居然獲取不到,說啥子只有在IE瀏覽器中才管用。
第二個(gè)方案(最終方案):
h5獲取不到,但原生端不是可以的嗎。最終流程,h5端輸入框開始編輯,去調(diào)用原生端方法,告知需要獲取剪貼板內(nèi)容,原生端獲取剪貼板內(nèi)容調(diào)用h5端方法同時(shí)傳值給h5端,最后輸入框中不就有值了嗎。
JavascriptChannel(
name: 'copy',
onMessageReceived: (JavascriptMessage message) {
_toHTMLCopyContent();
}
),
_toHTMLCopyContent() async {
var clipboardData = await Clipboard.getData(Clipboard.kTextPlain);//獲取粘貼板 中的文本
if (clipboardData != null) {
_controller.evaluateJavascript("getCopy('${clipboardData.text}')").then((value) {
});
}
}