我使用 Google 提供的示例来演示JavaScript和Java之间的双向通信,
REF [1]:
功能正常。我可以调用JavaScript函数 来自Java并从JavaScript回调Java函数。
问题是当我在JavaScript函数中使用警报时,它不会 出现,但函数内部的功能正常。
为什么JavaScript函数中的alert("test")
不会出现在Android中。
我在web-view
中加载了JavaScript。当我在Android中点击按钮时
我调用该函数,但它没有出现。
如果有人知道这个问题,pealse会帮助我。
由于
答案 0 :(得分:14)
setContentView(R.layout.main);
WebView webview = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webview.requestFocusFromTouch();
webview.setWebViewClient(new WebViewClient());
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("file:///android_asset/test.html");
此代码工作完美,并向我显示警报框.. 这是我的 的 的test.html 强>
<html>
<head>
<script type="text/javascript">
function show_alert()
{
alert("Hello! I am an alert box!");
}
</script>
</head>
<body>
<input type="button" onclick="show_alert()" value="Show alert box" />
</body>
</html>
答案 1 :(得分:1)
通过添加以下两行,我的JavaScript可以工作:
nrow(.SD)==1
答案 2 :(得分:0)
使用以下方法
WebView wv=new WebView(this);
wv.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,JsResult result) {
//Required functionality here
return super.onJsAlert(view, url, message, result);
}
答案 3 :(得分:0)
只需使用WebChromeClient。它会做一切。
mWebview.setWebChromeClient(new WebChromeClient());
它会起作用。