在版本2.2的android webview中加载https获得白屏

在版本2.2的android webview中加载https获得白屏,android,android-webview,Android,Android Webview,我需要在android webview中加载https url,但它会被白屏加载 我还处理了public void onReceivedSslError(WebView视图,SslErrorHandler,SslError error),但在加载url时仍会出现白色屏幕,但logcat中没有异常 下面是我的代码 public class MainActivity extends Activity { private static final String URL = "https://some

我需要在android webview中加载https url,但它会被白屏加载

我还处理了
public void onReceivedSslError(WebView视图,SslErrorHandler,SslError error)
,但在加载url时仍会出现白色屏幕,但logcat中没有异常

下面是我的代码

public class MainActivity extends Activity { 
private static final String URL = "https://someurl";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView myWebView = (WebView)findViewById(R.id.webview);

    WebSettings settings = myWebView.getSettings();

    settings.setJavaScriptEnabled(true);

    settings.setDomStorageEnabled(true);

    myWebView.loadUrl(URL);



    myWebView.setWebViewClient(new MyWebViewClient());


}


private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getHost().equals(URL)) {

            return false;
        }
        Activity that handles URLs
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        super.onReceivedSslError(view, handler, error);


        handler.proceed();
    }
}
}

期待您的回复


感谢handler。继续();应该让WebView加载https url,您是否尝试加载常规http url,并查看WebView是否仍然为白色

Android有时会将WebView呈现为白色,这是一个错误

尝试在WebView上禁用硬件加速,在.xml布局资源的WebView上设置android:layerType=“software”属性

<WebView
    android:id="@+id/webviev"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:layerType="software" />

有些SSL证书在Android 2.2中不受支持,您可以尝试并检查在本机浏览器中加载它,如果它在浏览器上工作,则可能受支持。如果不支持,您至少有以下两个选项

  • 若要更改SSL证书提供程序,请假定您拥有网站的管理员权限
  • 实施一个类似于
  • 请检查其他Android版本是否也支持SSL

    mWebview.setWebViewClient(new WebViewClient() {
    
    
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                super.onReceivedSslError(view, handler, error);
               //Error happens here and returns an empty page.
            }
    
    在2.3设备上,认证验证存在问题。 它可能有效,但如果顺序不正确,则会失败

    您可以调用handler.procedure();
    但我不推荐!因为它破坏了所需的验证。

    您需要一个经过验证和信任的SSL证书,还请注意,如果您的SSL颁发者是像GoDaddy这样的廉价颁发者,那么这个中间证书如果丢失,在PC浏览器上不会出错,但在移动浏览器上会出错,在移动浏览器上打开不受信任的证书有一种解决方法,但要打开它确实很复杂setup@Shehabix谢谢您能告诉我们此错误的解决方法吗?您是否尝试加载常规http url,并查看Web视图是否仍然为白色?@Xigmond yes常规http加载非常完美。