2015-12-13 4 views
0

Я новичок в android, и в своем приложении мне нужно подключиться к для оплаты, и вот как выглядит мой веб-просмотр, когда я пытаюсь установить соединение.Загрузка https через андроид webview

webview fails

Я посмотрел в Интернете для решения загрузки по протоколу HTTPS через переопределение onReceivedSslError метода игнорировать ошибку и продолжить далее. Итак, я сделал это следующим образом.

Вот мой WebView получает свои настройки:

web = (WebView)findViewById(R.id.web); 

// setting WebViewClient 
web.setWebViewClient(new WebViewClientClass()); 
web.getSettings().setDomStorageEnabled(true); 
web.getSettings().setJavaScriptEnabled(true); 
web.loadUrl(orderSheetUrl); 

где orderSheetUrl является HTTPS URL, к которому мой платеж действие происходит пользователю.

Ниже мой WebViewClient класс:

private class WebViewClientClass extends WebViewClient { 
    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     Log.d("WebView", "onPageStarted " + url); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     Log.d("WebView", "in shouldOverrideUrlLoading"); 
     view.loadUrl(url); 
     return true; 
    } 

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

    @Override 
    public void onPageFinished(WebView view, String url) { 
     Log.d("WebView", "onPageFinished " + url); 
    } 
} 

Проблема здесь я пытаюсь загрузить ссылку, но найти в моем журнале, что только журналы для onPageStarted и onPageFinished вызывается.

Вот мои журналы:

12-13 17:06:31.760 8694-8694/? D/WebView: onPageStarted :"https://alpha-bill.payco.com/easyLogin/201512132004116802?inAppYn=Y" 
12-13 17:06:31.760 8694-8694/? D/WebView: onPageFinished :"https://alpha-bill.payco.com/easyLogin/201512132004116802?inAppYn=Y" 
12-13 17:06:31.790 8694-9927/? E/Adreno-ES20: <check_framebuffer_attachment:854>: Invalid texture format! Returning error! 
12-13 17:06:31.790 8694-9927/? E/Adreno-ES20: <check_framebuffer_object_status:1237>: Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT! 
12-13 17:06:31.800 8694-8694/? W/cr.BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 8694 
12-13 17:06:31.810 8694-8694/? W/cr.BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 8694 
12-13 17:06:32.180 8694-8795/? E/Adreno-ES20: <check_framebuffer_attachment:854>: Invalid texture format! Returning error! 
12-13 17:06:32.180 8694-8795/? E/Adreno-ES20: <check_framebuffer_object_status:1237>: Framebuffer color attachment incomplete. Returning GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT! 

Я действительно не понимаю, почему метод onReceivedSslError не вызывается даже тогда, когда я получить доступ к URL, начиная с HTTPS, что из моего понимания должны требовать сертификат, чтобы иметь доступ ,

Я сделал что-то не так с реализацией своего WebViewClient? Или есть ли другой способ обойти это? Заранее спасибо за помощь.

P.S. моя цель API является 23 и минимум 15.

+0

проверить, правильно ли установлено время –

ответ

2

Из документации:

Уведомить хост-приложение, которое произошла ошибка SSL при загрузке ресурса.

Так почему же его следует называть, когда нет ошибки?

+0

Я отредактировал свой вопрос. Я забыл упомянуть, что мой веб-просмотр не загружается и не дает ошибок ssl, поэтому мне интересно, что это за ошибка. – ohnu93

+0

может быть, что вы отправляете символы '' 'как часть URL-адреса? – Henry

+0

Ahhhhh stupid me :(Спасибо за помощь! Это действительно передача url с цитатами! – ohnu93