以下是一个解决Android WebView和JavaScript程序点击按钮不起作用的示例代码:
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
document.getElementById("myButton").addEventListener("click", function() {
// 执行一些操作
});
addJavascriptInterface
方法将一个Java对象传递给WebView,并在该对象中提供一个公开的方法供JavaScript调用:public class JavaScriptInterface {
private Context mContext;
public JavaScriptInterface(Context context) {
mContext = context;
}
@JavascriptInterface
public void performAction() {
// 执行一些操作
}
}
// 在创建WebView时,将JavaScriptInterface对象传递给WebView
WebView webView = findViewById(R.id.webView);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
Android.performAction()
方法调用Java对象的方法:document.getElementById("myButton").addEventListener("click", function() {
Android.performAction();
});
这样,当按钮被点击时,JavaScript代码将调用Java对象的performAction
方法执行相关操作。
请注意,为了保证安全性,你应该限制通过addJavascriptInterface
方法传递给WebView的Java对象所提供的公开方法,并仅在需要时将其暴露给JavaScript。