【问题标题】:Webview in Alert Dialog not showing content警报对话框中的 Webview 不显示内容
【发布时间】:2018-05-15 00:23:47
【问题描述】:

我正在开发一个 Android 应用程序。我需要在 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();

我的代码有什么问题?

屏幕截图

【问题讨论】:

  • 刚刚注意到在显示AlertDialog 时,您没有调用settings.setJavaScriptEnabled。你这样做吗?

标签: android


【解决方案1】:

您是否尝试过在警报对话框中的 web 视图上启用 javascript?没有它,页面可能无法加载,您的第一种方法启用它,而您的第二种方法则没有。由于网址已被删除,不能排除!

此外,我之前也遇到过类似的 webview 问题,这些问题通过创建一个新的 XML 布局来解决,其中只有一个 webview,然后对其进行膨胀以供使用:

    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" />

【讨论】:

  • 谢谢,我想尝试第一个建议,但插入行:wv.setJavaScriptEnabled(true);不被接受并显示为错误
  • 嘿,您需要从第一种方法中获取代码,特别是处理 WebSettings 的位:WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); 不确定这会帮助您注意,但它消除了可能的原因。跨度>
  • 我附上了一张截图。现在警报对话框以预期的高度打开,包括标题、空格和按钮,但突然它变小了,出现了灰色条纹而不是 webview
  • 您可以尝试加载一个简单的静态 html 页面吗?您的页面上可能有一些 Javascript 正在调整大小/调整视点,从而导致意外行为。
  • 是的,我想问题出在网络上,我尝试了另一个网站,它显示完美。
猜你喜欢
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多