Android中的Web视图不显示警报?

时间:2011-06-24 03:55:22

标签: java javascript android android-webview

我使用 Google 提供的示例来演示JavaScript和Java之间的双向通信,

REF [1]:

http://code.google.com/p/apps-for-android/source/browse/trunk/Samples/WebViewDemo/src/com/google/android/webviewdemo/WebViewDemo.java

功能正常。我可以调用JavaScript函数 来自Java并从JavaScript回调Java函数。

问题是当我在JavaScript函数中使用警报时,它不会 出现,但函数内部的功能正常。

为什么JavaScript函数中的alert("test")不会出现在Android中。 我在web-view中加载了JavaScript。当我在Android中点击按钮时 我调用该函数,但它没有出现。

如果有人知道这个问题,pealse会帮助我。

由于

4 个答案:

答案 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());

它会起作用。