Finalmente lo conseguí por mi cuenta después de leerlo un poco. Algo difícil cuando no sabes nada sobre javascript y cuando el documento es bastante delgado sobre el tema.
Aquí está mi solución, espero que esto ayude a otros:
Con una página HTML que contiene 2 botones al final de esa manera:
<div>
<button type="button" id="ok" style="font-weight: 700; margin-right: 20px;" onclick="validClick();">J'accepte</button>
<button type="button" id="no" onclick="refuseClick();">Je refuse</button>
</div>
envío el caso de que el clic con el Javascript en la parte superior de mi página HTML:
<script language="javascript">
function validClick()
{
valid.performClick();
document.getElementById("ok").value = "J'accepte";
}
function refuseClick()
{
refuse.performClick();
document.getElementById("no").value = "Je refuse";
}
</script>
valid
y refuse
son objetos Java 2 que pasa a través de la interfaz JavaScript para utilizar sus métodos. Así que en java, creé 2 botones (en realidad no se muestran en la actividad, aquí sólo por sus métodos y son una especie de sombra de los botones HTML:
valid = new Button(ctx);
valid.setOnClickListener(this);
refuse = new Button(ctx);
refuse.setOnClickListener(this);
Luego añade javascript para mi WebView
:
// Enablejavascript
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
// Add the interface to record javascript events
wv.addJavascriptInterface(valid, "valid");
wv.addJavascriptInterface(refuse, "refuse");
Y, por último, manejar los eventos de clic en el método onClick:
@Override
public void onClick(View v) {
if (v.equals(valid)) {
//do Something
} else if (v.equals(refuse)) {
//do Something else }
}
Esperamos que ayude a algunas personas
@neha la forma de resolver este problema me da ningún ejemplo sencillo .. – NagarjunaReddy
@Sephy puede usted explicar lo que es válido y se niegan son botones u objetos JavaWebInterface? ¿Y el método onclick se debe a que ha implementado el oyente onclick o algo por el estilo? Lo siento pero no puedo ejecutar el código anterior. Por favor ayuda. Gracias – newBie
@Sephy esto no funciona en Android 2.3. ¿Hay alguna forma de implementar esto? –