En Android, ¿cómo puedo establecer el valor de un cuadro de edición en WebView mediante JavaScript?

Entiendo cómo establecer el valor de un cuadro de edición en WebView, y en un navegador en PC con Javascript.

Es básicamente primero averiguar el ID de la caja de edición (texto), a continuación, establecer el valor mediante: En PC:

document.getElementById('xxxxxxxx').value = 'test' 

En Android:

 mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').value = 'test'"); 

Este script funciona en la PC, pero cuando llamo a la secuencia de comandos en WebView.loadUrl, simplemente anular toda mi página para "probar".

Es extraño para mí porque el siguiente código android funciona en el botón de opción, pero cuando se trata de la caja de edición, simplemente falla.

 mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').checked = true"); 

¿Podrían ustedes ayudarme a analizar cuál podría ser la posible razón? Muchas gracias.

Para dejarlo en claro, estoy ejecutando el código javascript en WebViewClient.onPageFinished (vista WebView, URL de cadena) . Así que el WebView debe estar completamente cargado. Eso también tiene sentido porque puedo comprobar el botón de radio.

3 Solutions collect form web for “En Android, ¿cómo puedo establecer el valor de un cuadro de edición en WebView mediante JavaScript?”

El problema esta resuelto. Fue por la forma en que llamo javascript en código java.

Codificar como

 mWebView.loadUrl("javascript: [your javascript code]"); 

A veces funcionan, pero no funciona en todo caso. Al menos no funciona para el siguiente caso cuando intenté establecer el cuadro de texto en una vista web:

 mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').value= 'test'"); 

Pero debería funcionar si llama al javascript como una función:

 mWebView.loadUrl("javascript: (function() {document.getElementById('xxxxxxxx').value= 'test';}) ();" ); 

Eso arregló mi problema. Espero que sea útil.

Me imagino que está ejecutando el comando antes de que la página se carga o no puede resolver documento en sí. Debe escribir este código como una función incluida en su documento y luego hacer que android:

 mWebView.loadUrl("javascript: myFunction('test')"); 

O mejor aún, use @JavascriptInterface

Utilice la función setText () de TextView como en:

 TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); 

Donde 'message' es una variable String, esto pondrá el valor de message en el cuadro textView reemplazando cualquier cosa que estaba allí anteriormente. Conseguí este ejemplo del código en la parte inferior de esta página https://developer.android.com/training/basics/firstapp/starting-activity.html

EditText utiliza el mismo método setText ()

  • Etiquetas de formato Html ignoradas en el cuadro de diálogo
  • Android Default textselector para copiar texto no funciona
  • Archivo de texto adjunto de Android
  • QPushButton ha duplicado texto después de la actualización Qt
  • Cambiar el texto del botón y la acción - desarrollo de Android
  • Establecer el color de la extensión de TextView en Android
  • Agregar texto a un tipo de datos TextView
  • El botón de Android y el tamaño del texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.