经过一番阅读,我终于自己掌握了它。当您对 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>
我将 clic 的事件发送到 HTML 页面顶部的 javascript:
<script language="javascript">
function validClick() {
valid.performClick();
document.getElementById("ok").value = "J'accepte";
}
function refuseClick(){
refuse.performClick();
document.getElementById("no").value = "Je refuse";
}
</script>
有效和拒绝是我通过 javascript 接口传递以使用它们的方法的 2 个 java 对象。所以在 java 中,我创建了 2 个按钮(没有真正显示在 Activity 中,仅用于它们的方法,并且是 HTML 按钮的阴影:
valid = new Button(ctx);
valid.setOnClickListener(this);
refuse = new Button(ctx);
refuse.setOnClickListener(this);
然后我将 javascript 添加到我的 WebView :
// 启用javascript
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
// 添加记录javascript事件的接口
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 }
}
希望这会帮助你。
谢谢