来自服务的Android WebView(无活动)

时间:2014-04-19 17:57:27

标签: javascript android webview android-context

我尝试从服务通知运行WebView。 WebView工作正常,但我没有收到警报和一些JavaScript函数正在运行。

这就是我创建WebView的方式(没什么特别的):

mWebView = new WebView(mServiceContext);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        webSettings.setBuiltInZoomControls(true);

        mWebView.requestFocusFromTouch();

        mWebView.setWebViewClient(new WebViewClient());
        mWebView.setWebChromeClient(new WebChromeClient());    


        mWebView.setOnClickListener(new OverlayOnClickListener());
        mWebView.setOnTouchListener(new OverlayOnTouchListener());
        mWebView.loadUrl("file:///android_asset/www/test/test.html");

这是test.html文件:

<!DOCTYPE html>
<html>
<head>
    <script>
    function myFunction()
    {
        alert("Hello! I am an alert box!");

        console.log("clicked");
    }
    </script>
</head>
<body>

<input type="button" onclick="myFunction()" value="Show alert box" />
</body>
</html>

当我单击WebView上的按钮时,我从JSDialogHelper收到以下日志消息:

"Cannot create a dialog, the WebView context is not an Activity"

有没有机会解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

有没有机会解决这个问题?

实施真正的WebChromeClientoverrides onJsAlert()。您的setWebViewClient()setWebChromeClient()setOnClickListener()setOnTouchListener()毫无用处,我怀疑setBuiltInZoomControls()requestFocusFromTouch()对您没有任何好处