2013-01-12 75 views
2

我需要加载在android系统的WebView一个HTTPS URL,但它被装载的白色屏幕。加载HTTPS得到白色屏幕在Android中的WebView在版本2.2

我也处理public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error)但越来越装有网址仍然得到白色画面,但也有在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(); 
    } 
} 

}

期待您的回复。

谢谢

+0

你需要一个验证和值得信赖的SSL证书,也注意到有一些所谓的中间证书或类似的东西,如果你的SSL发行人是一个便宜的类似GoDaddy的,例如,这中间证书,如果缺失并不会给PC错误浏览器,但它在移动浏览器,有一个为移动浏览器打开不受信任的证书周围的工作,但它的真正复杂设置 – Shehabix

+0

@Shehabix感谢。你能告诉我们什么是这个错误的解决方法。 – Mukunda

+0

你尝试并加载一个普通的HTTP URL,并查看是否仍然web视图是白色的? – TouchBoarder

回答

1

handler.proceed();应使的WebView加载HTTPS URL,你尝试并加载一个普通的HTTP URL,并查看是否仍然web视图是白色的。

有一个在Android的呈现在倍的WebView白色的错误。 layerType =“软件”上的.XML布局资源的WebView属性:

尝试在网页视图,设置禁用Android的硬件加速。

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

有一些不支持Android 2.2系统,你可以尝试,并检查它加载到本地浏览器,如果它适用于浏览器,那么它可能支持某些SSL证书。如果不支持,你已经ATLEAST以下两个选项

  1. 要更改SSL证书提供商假设你有管理员权限的网站
  2. 要围绕落实工作像SSL not working on Android 2.2 (only in 2.3)

请检查其他Android版本是否也支持SSL。

0
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.proceed(); 但我不推荐它!因为它打破了需要验证。

相关问题