【问题标题】:WebView blank page : How to fix it?WebView 空白页:如何解决?
【发布时间】:2019-07-05 11:19:41
【问题描述】:

我有一个问题,我花了太多时间来解决它,但没有任何解决方案来解决它。 我想在 webview 中打开一个链接。 我的 logcat 和我的运行选项卡显示网站已正确加载,但我的 webview 仍然是空白的。

这是我的代码

public class WebviewFragment extends AppCompatActivity {

    @BindView(R.id.webview)
    WebView webView;
    private String newString;
    private String key = "KEY";
    Activity activity;
    Context mContext;
    private ProgressDialog progDailog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview_fragment);

        activity = this;

        progDailog = ProgressDialog.show(activity, "Loading", "Please wait...", true);
        progDailog.setCancelable(false);
        webView = new WebView(this);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setCacheMode( 10 * 1024 * 1024 );
        webView.getSettings().setDomStorageEnabled(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setAppCachePath(activity.getCacheDir().getPath());
       webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setLoadsImagesAutomatically(true);

        if (savedInstanceState == null) {
            Bundle extras = getIntent().getExtras();
            if (extras == null) {
                newString = null;
            } else {
                newString = extras.getString(key);
            }
        } else {
            newString = (String) savedInstanceState.getSerializable(key);
        }
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                progDailog.show();
                view.loadUrl(url);

                return true;
            }

            @Override
            public void onPageFinished(WebView view, final String url) {
                progDailog.dismiss();
            }
        });
        webView.loadUrl(newString);
    }

}

newString 是很好的链接。 我的“logcat”选项卡中没有错误,我的“运行”选项卡中也没有错误。 但我无法解决这个问题。

如果您有任何建议,请告诉我。

【问题讨论】:

  • 尝试删除此行view.loadUrl(url);
  • 不幸的是,@VivekMishra 仍然是空白
  • setLoadWithOverviewMode(true) 加载完全缩小的 WebView。所以这可能是问题
  • 显示你的activity_webview_fragment

标签: android webview chromium


【解决方案1】:

您将 URL 加载到您从未添加到屏幕的 WebView 中:

webView = new WebView(this);

而且你永远不会在你的布局中显示它。

如果您的布局中有WebView,您可能希望将其用作

webView = findViewById(R.id.<something>);

代替

webView = new WebView(this);

【讨论】:

  • 当然!多谢!!我是第一次使用 Butterknife(学生),所以解决方案是您的解决方案(最有用的)和 @user3413619 解决方案与 Butterknife.bind(this); 之间的混合;也谢谢你
【解决方案2】:

嘿,你好像在用 Butterknife 忘记打电话了

Butterknife.bind(this);

因为此调用会将 Butterknife 绑定绑定到 webview。

【讨论】:

    猜你喜欢
    • 2013-07-10
    • 2015-08-24
    • 2018-09-12
    • 2020-05-31
    • 2022-08-18
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多