Я наконец-то получил его самостоятельно после некоторого чтения.Сложно, когда вы ничего не знаете о javascript и когда документ довольно тонкий по теме.
Вот мое решение, надеюсь, это поможет другим:
С HTML-страницей, содержащей 2 кнопки в концевот так:
<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>
Я отправляю событие клика в javascript вверху моей 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
и refuse
- 2 объекта javaчто я прошел через интерфейс javascript, чтобы использовать их методы.Итак, в java я создал 2 кнопки (которые в действительности не отображаются в Activity, только здесь для их методов и являются своего рода тенями HTML-кнопок:
valid = new Button(ctx);
valid.setOnClickListener(this);
refuse = new Button(ctx);
refuse.setOnClickListener(this);
Затем я добавил javascript в свой WebView
:
// Enablejavascript
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
// Add the interface to record javascript events
wv.addJavascriptInterface(valid, "valid");
wv.addJavascriptInterface(refuse, "refuse");
И, наконец, обработайте события нажатия в методе onClick:
@Override
public void onClick(View v) {
if (v.equals(valid)) {
//do Something
} else if (v.equals(refuse)) {
//do Something else }
}
Надеюсь, это поможет некоторым людям