Tenemos una página web con un elemento de entrada en una aplicación webview en Android.
Si el texto de entrada no está vacío, tiene texto, puede tocar y el administrador del portapapeles se inicia y muestra:
PERO, cuando el texto de entrada está vacío, no puede iniciar el administrador del portapapeles para pegar texto.
¿Debo implementar onLongClick en la aplicación webview de Android? en caso afirmativo, ¿cuál es el código para iniciar simplemente el administrador del portapapeles de Android?
¿Debo agregar un botón de pegado html y resolverlo con código html?
Esta es la mejor solución que he encontrado, solo obtenga el texto del portapapeles y péguelo a través de javascript cuando haga clic largo en una entrada enfocada de una página web cargada en myWebView
myWebView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipData clip; clip = clipboard.getPrimaryClip(); String str = clip.getItemAt(0).getText().toString(); myWebView.evaluateJavascript("try{document.activeElement.value='"+str+"';}catch(e){}", new ValueCallback<String>() { @Override public void onReceiveValue(String s) {} }); return true; } });