Android Webview和HTTPS?
我想知道是否有人能帮我 我想为android开发一个应用程序(webview),但它以前与http://links一起使用,但不知何故,无法打开https://links。当我使用我的普通浏览器访问普通站点时,它会请求我的许可以继续使用证书 我现在的问题是如何允许证书和查看HTTPS 我将在下面发布我的webview活动的来源,提前感谢:)Android Webview和HTTPS?,android,https,webview,Android,Https,Webview,我想知道是否有人能帮我 我想为android开发一个应用程序(webview),但它以前与http://links一起使用,但不知何故,无法打开https://links。当我使用我的普通浏览器访问普通站点时,它会请求我的许可以继续使用证书 我现在的问题是如何允许证书和查看HTTPS 我将在下面发布我的webview活动的来源,提前感谢:) 您可以使用android私有API来完成此操作。请查看此操作是否有效?OnReceivedSlerRor函数位于setWebViewClient函数/类中,
您可以使用android私有API来完成此操作。请查看此操作是否有效?OnReceivedSlerRor函数位于setWebViewClient函数/类中,与onReceivedError内联,并应在加载时覆盖。查看堆栈溢出链接中的链接:让我们先发布更新的代码库,作为对原始问题的编辑,然后我们可以从中获取答案。我已经看到了很多关于这个问题的答案,没有那么简单。有人向我解释说,这个问题是由不同CA的Android有限的允许SSL引起的,特别是2.2和向后的。我们只是从另一个提供所需兼容性的CA获得了不同的SSL证书。请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(而不是另一个参考的中途停留,它往往会随着时间而过时)。请考虑在这里添加一个独立的概要,将链接作为参考。
package im.testing.a.cool.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebPageLoader extends Activity
{
final Activity activity = this;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Grabbing the bits and the bytes..");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error (does the ssl goes hier?)
engine = (WebView) findViewById(R.id.my_webview);
engine.setWebViewClient(new WebViewClient() {
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed() ;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webView.loadUrl("https://website.willnot.open");
}
}