通过Android WebView中的javascript检测HTML按钮的单击

我对javascript不太熟悉,但是我认为这是实现我的目标的最佳方法。如果没有,请纠正我。

我最后有一个许可证文本2按钮。所有这些都是用HTML编写的,WebView因为许可证中有一些链接。现在,我希望当用户单击中的“确定”按钮时WebView,这会触发一些我可以在Java中抓取的JavaScript或侦听器以触发Intent应用程序中的前进。(“取消”按钮的作用相反,但是如果我知道一种方法,我可以做另一种。)

这会给某人敲钟吗?欢迎任何解释或示例代码。

回答:

经过一番阅读,我终于自己得到了它。当您对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>

我将点击事件发送到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>

validrefuse2个Java对象,我过的JavaScript接口传递到使用他们的方法。因此,在Java中,我创建了2个按钮(未在“活动”中真正显示,仅在此处显示其方法,并且是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方法中处理click事件:

@Override

public void onClick(View v) {

if (v.equals(valid)) {

//do Something

} else if (v.equals(refuse)) {

//do Something else }

}

希望这对某些人有帮助

以上是 通过Android WebView中的javascript检测HTML按钮的单击 的全部内容, 来源链接: utcz.com/qa/420495.html

回到顶部