警报对话框中的Webview未显示内容

时间:2018-05-14 15:34:09

标签: android

我正在开发Android应用。我需要在webview和警告对话框上显示一个网站。 该站点显示在webview中,但不在警报对话框中。 到目前为止,这是我的代码:

web视图:

WebView myWebView = (WebView) v.findViewById(R.id.webview);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.loadUrl("https://...ilov_merged.html");

警报对话框:

AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this,R.style.MyDialogTheme)
                        .setTitle("TERMS OF USE AND PRIVACY POLICY");

                WebView wv = new WebView(RegisterActivity.this);
                wv.loadUrl("https://...ilov_merged.html");
                wv.setWebViewClient(new WebViewClient() {
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        view.loadUrl(url);

                        return true;
                    }
                });
                builder.setView(wv);
                       builder .setCancelable(false);
                        builder.setPositiveButton(R.string.accept,
                                new Dialog.OnClickListener() {

                                    @Override
                                    public void onClick(
                                            DialogInterface dialogInterface, int i) {
                                        // Mark this version as read.
                                        checkBox.setChecked(true);

                                        // Close dialog
                                        dialogInterface.dismiss();

                                        // Enable orientation changes based on
                                        // device's sensor

                                    }
                                })
                        .setNegativeButton(android.R.string.cancel,
                                new Dialog.OnClickListener() {

                                    @Override
                                    public void onClick(DialogInterface dialog,
                                                        int which) {
                                        // Close the activity as they have declined
                                        // the EULA


                                    }



                                });
                builder.create().show();

我的代码有什么问题?

SCREENSHOT

enter image description here

1 个答案:

答案 0 :(得分:1)

您是否尝试在alertdialog中的webview上启用javascript?如果没有它,页面可能无法加载,并且您的第一种方法可以在您的第二种方法未启用时启用它。由于该网址已被删除,因此无法将其排除在外!

此外,我之前遇到过类似的webview问题,这些问题是通过创建一个仅包含webview的新XML布局来解决的,然后将其膨胀以供使用:

    WebView webView = LayoutInflater.from(activity).inflate(R.layout.webview_fragment, null) as WebView
    webView.loadUrl("file:///android_asset/terms-register.html")
    AlertDialog.Builder(activity).setView(webView)

webview_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<WebView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/web_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:theme="@style/VerticalScrollbar" />