我需要在android webview中加载https url,但它加载了白屏。
我也处理过public void onReceivedSslError(WebView view, SslErrorHandler handler, 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();
}
}}
期待您的回复。
谢谢
发布于 2013-01-12 16:46:25
handler.proceed();应该让WebView加载https url,让您尝试并加载一个常规的http url,看看WebView是否仍然是白色的。
在安卓系统中,有时会出现一个将WebView渲染为白色的bug。
尝试禁用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" />发布于 2013-01-12 16:47:40
有一些SSL证书在Android 2.2中不受支持,你可以尝试在本地浏览器中加载它,如果它在浏览器上工作,那么它可能会被支持。如果不支持,您至少有以下两个选项
假设您对网站拥有管理员权限,可使用
的变通方法
请检查其他Android版本是否也支持SSL。
发布于 2014-04-17 23:40:44
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();但我不推荐这样做!因为它破坏了所需的验证。
https://stackoverflow.com/questions/14291685
复制相似问题