弹出屏幕在Webview中无法打开?

3

我目前正在使用webview进行工作,当在webview中单击某个按钮时,会创建Javascript弹出窗口。 但它在我的Webview中没有打开。

这是我的代码:

wvPayements = (WebView) view.findViewById(R.id.wvPaymentsPage);
    wvPayements.getSettings().setLoadWithOverviewMode(true);
    wvPayements.getSettings().setUseWideViewPort(true);
    wvPayements.getSettings().setSupportZoom(true);
    wvPayements.getSettings().setAllowFileAccess(true);
    wvPayements.getSettings().setJavaScriptEnabled(true);
    wvPayements.getSettings()
            .setJavaScriptCanOpenWindowsAutomatically(true);
    wvPayements.getSettings().setBuiltInZoomControls(true);
    wvPayements.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, final String url) {
            dialog.cancel();
        }
    });
     wvPayements
     .loadUrl("http://192.168.0.114/Parch_ws/testalert.html");

我没有看到任何对话框在这里弹出。 - Saqib
1
它来自网络,不是来自Android本地。 - Kishan Dhamat
2个回答

8
你需要使用WebChromeClient来实现你的目的:

One should use a WebChromeClient to get these alerts and the functionality can be overwritten using theonJsAlert() method. Hope this helps!

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);
    }
});
来源:https://issuetracker.google.com/issues/36905249#comment11

2
谢谢伙计,你帮我省了好几个小时。 - Kishan Dhamat
你好@Hardik,我使用了这种方法,但在我的情况下它并没有起作用。是否需要进行其他设置? - Swapnil Sonar
@SwapnilSonar 你需要使用Web Chrome客户端来完成。 - Hardik
1
实际上,我们正在开发一个Web应用程序,使用户可以使用“Linkedin”登录应用程序,在Web和Android浏览器中运行得非常好。但是当我们尝试在Android Webview中访问它时,Linkedin登录弹出窗口/对话框无法打开。 - Swapnil Sonar

0

如果您在不支持ES6的浏览器上执行代码,也会出现这种情况。

您可以随时在此处检查支持的版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接