You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android WebView加载网站出现空白白屏问题求助

Android WebView加载网站白屏问题排查方案

以下是针对你遇到的WebView白屏问题的具体排查和解决步骤:

1. 开启WebView调试,直接查看网页错误

在MainActivity的onCreate方法中添加调试开关,用Chrome浏览器查看网页控制台的报错信息,这是定位问题最快的方式:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // 开启WebView调试
    WebView.setWebContentsDebuggingEnabled(true);
    
    webView = (WebView) findViewById(R.id.wbView);
    // ... 其他原有代码
}

打开Chrome浏览器输入chrome://inspect,连接你的测试设备,就能看到WebView实例,点击inspect查看控制台的JS错误、资源加载失败或SSL相关报错。

2. 重写WebViewClient回调,捕获加载错误

默认的WebViewClient不会暴露加载错误,重写以下方法可以直接获取错误信息:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
        super.onReceivedError(view, request, error);
        Log.e("WebViewError", "加载错误: " + error.getDescription().toString());
    }

    @Override
    public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
        super.onReceivedHttpError(view, request, errorResponse);
        Log.e("WebViewHttpError", "HTTP错误码: " + errorResponse.getStatusCode());
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        // 调试阶段可以临时允许加载,正式环境需处理证书问题
        handler.proceed();
        Log.e("WebViewSslError", "SSL证书错误: " + error.toString());
    }
});

通过Logcat查看这些错误日志,就能知道是证书问题、HTTP状态码错误还是网页JS报错。

3. 补充WebSettings必要配置

你的代码只开启了JavaScript,现代网站通常需要更多配置才能正常加载,添加以下设置:

WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
// 开启DOM存储,很多网站依赖这个
webSettings.setDomStorageEnabled(true);
// 适配移动端屏幕
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
// 允许访问文件资源
webSettings.setAllowFileAccess(true);
// 开启缓存(可选,根据网站需求)
webSettings.setAppCacheEnabled(true);

4. 排查网站本身的兼容性

  • 先在手机自带浏览器或Chrome手机版打开https://www.m.kspromilplock.pl,如果浏览器也白屏,说明是网站本身的问题(比如移动端适配缺失、JS语法不兼容移动端浏览器)。
  • 检查网站的HTTPS证书是否有效,可通过在线工具验证证书是否过期、是否被Android系统信任。

5. 处理网络安全配置(如果是SSL证书问题)

如果是自签名证书或不被Android信任的证书,需要在项目中添加网络安全配置:

  1. 在res/xml目录下创建network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">m.kspromilplock.pl</domain>
        <!-- 如果是自签名证书,添加trust-anchors指向你的证书 -->
        <!-- <trust-anchors>
            <certificates src="@raw/your_certificate"/>
        </trust-anchors> -->
    </domain-config>
</network-security-config>
  1. 在Manifest的application标签中添加配置:
android:networkSecurityConfig="@xml/network_security_config"

内容的提问来源于stack exchange,提问作者Kuba1016

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 04:43:21