gpt4 book ai didi

android - WebView 在打开支付网站时显示空白页面 - Lollipop

转载 作者:太空狗 更新时间:2023-10-29 16:01:45 24 4
gpt4 key购买 nike

我在将 URL 加载到 WebView 时遇到问题,它始终显示空白页面,而且我在 LogCat 中看不到任何错误。它在低于 5.0 [Lollipop] 的设备上工作正常,错误仅发生在 Lollipop 设备上。我尝试了 StackOverflow 中的许多解决方案,但没有一个有效。以下是我最终得到的最终代码。我要加载的站点是: https://netbanking.hdfcbank.com/netbanking/ 非常感谢任何帮助。

import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.webkit.CookieManager;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

/**
* Created by shetty on 4/18/2015.
*/
public class WebPageTest extends Activity {

WebView webView;

/** Called when the activity is first created. */
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_page);
String url = getIntent().getStringExtra("url");
webView = (WebView) findViewById(R.id.webview);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);

// webView.clearSslPreferences();
settings.setDomStorageEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
webView.enableSlowWholeDocumentDraw();
}
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(webView,true);
webView.setWebViewClient(new SSLTolerentWebViewClient() {
@Override
public void onReceivedSslError(final WebView view, final SslErrorHandler handler, SslError error) {
Log.d("CHECK", "onReceivedSslError");
AlertDialog.Builder builder = new AlertDialog.Builder(WebPageTest.this);
AlertDialog alertDialog = builder.create();
String message = "Certificate error.";
switch (error.getPrimaryError()) {
case SslError.SSL_UNTRUSTED:
message = "The certificate authority is not trusted.";
break;
case SslError.SSL_EXPIRED:
message = "The certificate has expired.";
break;
case SslError.SSL_IDMISMATCH:
message = "The certificate Hostname mismatch.";
break;
case SslError.SSL_NOTYETVALID:
message = "The certificate is not yet valid.";
break;
}
message += " Do you want to continue anyway?";
alertDialog.setTitle("SSL Certificate Error");
alertDialog.setMessage(message);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("CHECK", "Button ok pressed");
// Ignore SSL certificate errors
handler.proceed();
}
});
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("CHECK", "Button cancel pressed");
handler.cancel();
}
});
alertDialog.show();
}
});
webView.loadUrl(url);
}
}

最佳答案

设法解决这个问题。关于您的网站和我正在努力解决的问题是他们试图占据全屏高度。我的 webview(我想你的也是)有 layout_height="wrap_content",虽然它有适当的高度因为在相对布局内定位,当定位 sdk 21 webview 向页面报告 0 高度导致它的所有元素折叠到 0 高度以及。您需要做的就是将 webview 的 layout_height 更改为 match_parent。

针对正在努力解决 Web View 呈现问题的开发人员的专业提示。使用webview远程调试https://developer.chrome.com/devtools/docs/remote-debugging处理这样的问题可以节省很多时间。

关于android - WebView 在打开支付网站时显示空白页面 - Lollipop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com