我尝试从服务通知运行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"
有没有机会解决这个问题?
答案 0 :(得分:1)
有没有机会解决这个问题?
实施真正的WebChromeClient
,overrides onJsAlert()
。您的setWebViewClient()
,setWebChromeClient()
,setOnClickListener()
和setOnTouchListener()
毫无用处,我怀疑setBuiltInZoomControls()
和requestFocusFromTouch()
对您没有任何好处