忽略的WebView SSL证书请求 [英] Ignore ssl certificate requests in webview

查看:953
本文介绍了忽略的WebView SSL证书请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做小的应用程序,它涉及 aspx页面中,我尝试打开它,把我的WebView我有空白屏幕。

我试着用Chrome浏览器打开它,它给我需要的证书

在这里输入的形象描述

我的code是很简单的我想补充一些文件来解释是怎么回事

  @燮pressLint(SetJavaScriptEnabled)
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_web);
        束束= getIntent()getExtras()。
        如果(捆绑!= NULL){
            urlSite = bundle.getString(passed_url);
        }
     _toolbar =(工具栏)findViewById(R.id.toolbar);
    setSupportActionBar(_toolbar);
    getSupportActionBar()setDisplayHomeAsUpEnabled(真)。
    _toolbar.setNavigationOnClickListener(新View.OnClickListener(){
        @覆盖
        公共无效的onClick(视图v){
            onBack pressed();
        }
    });
    web视图=(的WebView)findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();    //启用JavaScript
    webSettings.setJavaScriptEnabled(真);
    webSettings.setDomStorageEnabled(真);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(真);
    webSettings.setUseWideViewPort(真);
    webSettings.setLoadWithOverviewMode(真);
    webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);
    webView.setWebChromeClient(新WebChromeClient());
    webView.setWebViewClient(新WebViewClient(){
        @覆盖
        公共无效onPageFinished(的WebView视图,字符串URL){
            super.onPageFinished(查看,网址);
            新的parseURL()执行(新的String [] {urlSite});
        }        @覆盖
        公共布尔shouldOverrideUrlLoading(的WebView视图,字符串URL){
            view.loadUrl(URL);
            返回true;
        }
    });
    如果(urlSite!= NULL){
        webView.clearCache(真);
        webView.loadUrl(urlSite);
       // webView.loadUrl(文件:///android_asset/af.html);
    }
}


解决方案

在一些研究,我发现答案,只是超越控制 onReceivedSslError 方法,并把它传递

  @覆盖
公共无效onReceivedSslError(的WebView视图,SslErrorHandler处理器,SslError错误){
    handler.proceed(); //忽略SSL证书错误
}

I make small app which involve aspx pages , I try open it throw my webview I got blank screen .

I try open it with chrome browser it give me certificate needed

my code is very simple I add some documentation to explain what is going on

@SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        Bundle bundle = getIntent().getExtras();
        if(bundle != null){
            urlSite = bundle.getString("passed_url");
        }
     _toolbar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(_toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    _toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });
    webView = (WebView) findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();

    // enable javascript
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setUseWideViewPort(true);
    webSettings.setLoadWithOverviewMode(true);
    webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);


    webView.setWebChromeClient(new WebChromeClient());
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            new ParseURl().execute(new String[]{urlSite});
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });
    if(urlSite != null){
        webView.clearCache(true);
        webView.loadUrl(urlSite);
       // webView.loadUrl("file:///android_asset/af.html");
    }
}

解决方案

After some researched I found answer , just overide onReceivedSslError method and pass it

@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
    handler.proceed(); // Ignore SSL certificate errors
}

这篇关于忽略的WebView SSL证书请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆