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

Android WebView加载网站显示白屏,浏览器可正常打开求解决

Troubleshooting Android WebView White Screen Issue

Hey there, sorry to hear you're stuck with the WebView white screen problem! Let's walk through the most common fixes since the site works in regular browsers but not your WebView.

1. Ensure Critical WebView Settings Are Enabled

Modern websites rely heavily on JavaScript and DOM storage, which are disabled by default in WebView. Here's a robust initialization setup you should add to your code:

WebView webView = findViewById(R.id.your_webview_id);
WebSettings webSettings = webView.getSettings();

// Enable JavaScript (essential for dynamic sites)
webSettings.setJavaScriptEnabled(true);

// Enable DOM storage (for sites that save local data)
webSettings.setDomStorageEnabled(true);

// Allow zoom functionality if needed
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);

// Handle mixed content (if site uses HTTPS but loads HTTP resources; note security risks for production)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
}

// Load your target URL
webView.loadUrl("https://your-target-site.com");

2. Add Error Logging to Diagnose the Root Cause

Without error logs, it's hard to pinpoint exactly what's breaking. Implement WebViewClient and WebChromeClient to capture issues:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
        Log.e("WebViewError", "Error: " + description + " | URL: " + failingUrl);
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        // For testing only! Never ignore SSL errors in production apps
        handler.proceed();
        Log.e("WebViewSSL", "SSL Issue: " + error.toString());
    }
});

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
        Log.d("WebViewConsole", consoleMessage.message() + " -- Line " + consoleMessage.lineNumber() + " | " + consoleMessage.sourceId());
        return super.onConsoleMessage(consoleMessage);
    }
});

Check Logcat for these messages—they'll reveal issues like missing resources, JavaScript errors, or SSL mismatches.

3. Verify Manifest Configuration

From your partial manifest, I see you have the INTERNET permission (great!), but double-check these:

  • If your target site uses HTTP (not HTTPS) and your app targets API 28+, add android:usesCleartextTraffic="true" to your <application> tag:
    <application 
        android:debuggable="true" 
        android:usesCleartextTraffic="true"
        ...>
    
  • Ensure there are no restrictive network security configurations blocking the site. If you have a network_security_config.xml, confirm it allows access to your target domain.

4. Check WebView Compatibility

Older WebView versions might lack support for modern web features (like ES6+ JS or CSS Grid). To fix this:

  • On your test device, go to Settings > Apps > Android System WebView and update it to the latest version.
  • For older devices, use AndroidX WebView (androidx.webkit:webkit) instead of the system WebView for better compatibility.

5. Clear WebView Cache and Data

Corrupted cached data often causes white screens. Clear it programmatically or manually:

webView.clearCache(true);
webView.clearHistory();
webView.clearFormData();

Or manually clear your app's cache from the device's app settings.

Try these steps one by one, and the error logs should help narrow down the issue if the initial settings don't fix it. Let me know if you find specific errors in Logcat!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:55:44