Ho finalmente capito da solo dopo aver letto qualcosa. È un po 'difficile quando non sai nulla di javascript e quando il documento è piuttosto sottile sull'argomento.
Ecco la mia soluzione, spero che questo aiuterà gli altri:
Con una pagina HTML contenente 2 pulsanti al termine del genere:
<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>
mando caso di clic per il javascript in alto della mia pagina 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
e refuse
sono 2 oggetti Java che ho passato attraverso l'interfaccia JavaScript per utilizzare i loro metodi. Quindi, in java, ho creato 2 pulsanti (in realtà non visualizzati nella attività, qui solo per i loro metodi e sono una sorta di ombre dei pulsanti HTML:
valid = new Button(ctx);
valid.setOnClickListener(this);
refuse = new Button(ctx);
refuse.setOnClickListener(this);
poi ho aggiunto javascript alla mia WebView
:
// Enablejavascript
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
// Add the interface to record javascript events
wv.addJavascriptInterface(valid, "valid");
wv.addJavascriptInterface(refuse, "refuse");
E, infine, gestire gli eventi click nel metodo onClick:
@Override
public void onClick(View v) {
if (v.equals(valid)) {
//do Something
} else if (v.equals(refuse)) {
//do Something else }
}
Spero che questo vi aiuterà alcune persone
@neha come risolvere questo problema mi ha dato alcun esempio semplice .. – NagarjunaReddy
@Sephy Si può spiegare ciò che è valido e si rifiutano sono essi pulsanti o oggetti JavaWebInterface? E il metodo onclick è perché hai implementato il listener di onclick o qualcosa del genere? Mi dispiace ma non riesco a eseguire il codice sopra. Per favore aiuto. Grazie – newBie
@Sephy questo non funziona in Android 2.3. Io ci sono un modo per implementarlo? –