Android webview在新Android版本上发布表单问题



我在测试过的Android版本2.3.6-4.2.2上有一个工作场景。

首先,我手动将 html 字符串设置为 WebView,这将打开一个新网页。

但是,在 Android 4.4.2 和 5.0 上,Webview 会返回有关 SSL 证书的错误。这些版本有什么区别?

.HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   "http://www.w3.org/TR/html4/strict.dtd">
 <html>
  <head>
      <title>MDpay default response template for web</title>
  </head>
  <body bgcolor="#02014E" OnLoad="OnLoadEvent();" >
      <form name="downloadForm"      action="https://asdasd/sds/sds"            method="POST">  
    <input type="hidden"         name="PaReq" value="eJxVkdFuwjAMRX+l4gNIkwXWImMJhqZVCIYAadpjlBpabQRI0w329UtKge0pPlbsa1/DurBEkxXp2hLCjKpKbSkq82GHJ32R9tIOwmK0pCPCF9mq3Bvk3bgrgFasd1ldKOMQlD6Oszn2pIhFCqxF2JHNJigSKXgcA7sgGLUjzMx2rMxH9DCJ1lQ5YE0W9L42zpAGLAAwO7aizpElS8+lTm+2fRHpMfNtp73p99JtpnS88ydi+x1NgQWfkCuHKGIueSC84iLQSwHYeomD2oXVHG9fI/8vn7qNgGHoDO6QLPO3wR4Gy0ZfcZU+lY3Ajod9ob8D7/PLYacKo2RlwwvsPsKTy/BTO2CbVJynvDgZsOhVendCHM3vQIACxWsPRRrz+asdoUw=                                                     ">  
    <input type="hidden"         name="TermUrl" value="https://asdsad.com.tr/fim/sds?msgid=343434">  
    <input type="hidden"         name="MD" value="528920:AA98DF8F43526CA06adssadgsbstrdvfhgED3475469BE0D51:4540:##150150100">  
    <!-- To support javascript unaware/disabled browsers -->  
    <noscript>    
        <center>Please click the submit button below.<br>    
            <input type="submit" name="submit" value="Submit">
        </center>  
    </noscript>
</form>
<SCRIPT LANGUAGE="Javascript" >function OnLoadEvent() {document.downloadForm.submit();}
</SCRIPT>
</body>
</html>

我还添加了来自 LogCat 的日志:

12-12 10:46:55.168    5150-5150/com.ingbanktr.cuzdan.debug I/WebViewFactory﹕ Loading com.google.android.webview version 37 (1576899-arm) (code 110101)
12-12 10:46:55.192    5150-5150/com.ingbanktr.cuzdan.debug I/LibraryLoader﹕ Loading: webviewchromium
12-12 10:46:55.197    5150-5150/com.ingbanktr.cuzdan.debug I/LibraryLoader﹕ Time to load native libraries: 15 ms (timestamps 7729-7744)
12-12 10:46:55.197    5150-5150/com.ingbanktr.cuzdan.debug I/LibraryLoader﹕ Expected native library version number "",actual native library version number ""
12-12 10:46:55.216    5150-5150/com.ingbanktr.cuzdan.debug V/WebViewChromiumFactoryProvider﹕ Binding Chromium to main looper Looper (main, tid 1) {36e534e6}
12-12 10:46:55.217    5150-5150/com.ingbanktr.cuzdan.debug I/LibraryLoader﹕ Expected native library version number "",actual native library version number ""
12-12 10:46:55.218    5150-5150/com.ingbanktr.cuzdan.debug I/chromium﹕ [INFO:library_loader_hooks.cc(106)] Chromium logging enabled: level = 0, default verbosity = 0
12-12 10:46:55.234    5150-5150/com.ingbanktr.cuzdan.debug I/BrowserStartupController﹕ Initializing chromium process, renderers=0
12-12 10:46:55.235    5150-5150/com.ingbanktr.cuzdan.debug W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
12-12 10:46:55.248    5150-5150/com.ingbanktr.cuzdan.debug W/chromium﹕ [WARNING:resource_bundle.cc(315)] locale_file_path.empty()
12-12 10:46:55.249    5150-5542/com.ingbanktr.cuzdan.debug W/AudioManagerAndroid﹕ Requires BLUETOOTH permission
12-12 10:46:55.249    5150-5150/com.ingbanktr.cuzdan.debug I/chromium﹕ [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful, fd=79 off=216848 len=3250
12-12 10:46:55.249    5150-5150/com.ingbanktr.cuzdan.debug I/chromium﹕ [INFO:aw_browser_main_parts.cc(78)] Loading webviewchromium.pak from, fd:80 off:229480 len:643667
12-12 10:46:55.330    5150-5548/com.ingbanktr.cuzdan.debug W/chromium﹕ [WARNING:proxy_service.cc(901)] PAC support disabled because there is no system implementation
12-12 10:46:55.332    5150-5150/com.ingbanktr.cuzdan.debug W/chromium﹕ [WARNING:data_reduction_proxy_settings.cc(403)] SPDY proxy OFF at startup
12-12 10:46:55.348    5150-5150/com.ingbanktr.cuzdan.debug W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
12-12 10:46:55.354    5150-5150/com.ingbanktr.cuzdan.debug W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring
12-12 10:46:55.360    5150-5150/com.ingbanktr.cuzdan.debug W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
12-12 10:46:55.360    5150-5150/com.ingbanktr.cuzdan.debug W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
12-12 10:46:55.543    5150-5150/com.ingbanktr.cuzdan.debug V/onPageStarted﹕ data:text/html,<!DOCTYPE HTML PUBLIC ....
12-12 10:46:55.543    5150-5150/com.ingbanktr.cuzdan.debug V/onLoadResource﹕ data:text/html,<!DOCTYPE HTML PUBLIC ...
12-12 10:46:55.575    5150-5150/com.ingbanktr.cuzdan.debug V/doUpdateVisitedHistory﹕ data:text/html,<!DOCTYPE HTML PUBLIC ...
12-12 10:46:55.615    5150-5150/com.ingbanktr.cuzdan.debug V/onPageFinished﹕ data:text/html,<!DOCTYPE HTML PUBLIC ...
12-12 10:46:55.619    5150-5150/com.ingbanktr.cuzdan.debug V/onPageStarted﹕ https://asd.test.com.tr/mdpayacs/pareq
12-12 10:46:55.620    5150-5150/com.ingbanktr.cuzdan.debug V/onLoadResource﹕ https://asd.test.com.tr/mdpayacs/pareq
12-12 10:46:55.721    5150-5150/com.ingbanktr.cuzdan.debug I/chromium﹕ [INFO:SkUtilsArm.cpp(179)] Device supports ARM NEON instructions!
12-12 10:46:56.040    5150-5541/com.ingbanktr.cuzdan.debug I/X509Util﹕ Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
12-12 10:46:56.048    5150-5150/com.ingbanktr.cuzdan.debug V/onPageFinished﹕ https://asd.test.com.tr/mdpayacs/pareq
12-12 10:46:58.416    5150-5150/com.ingbanktr.cuzdan.debug V/onPageStarted﹕ https://asd.test.com.tr/mdpayacs/pareq
12-12 10:46:58.428    5150-5150/com.ingbanktr.cuzdan.debug V/onLoadResource﹕ https://asd.test.com.tr/mdpayacs/pareq
12-12 10:46:58.766    5150-5150/com.ingbanktr.cuzdan.debug V/onPageFinished﹕ https://asd.test.com.tr/mdpayacs/pareq

从KitKat到更高版本的webview是基于Chromium而不是Android的特定分支Webkit。

https://developer.chrome.com/multidevice/webview/overview

此问题与SSL证书有关。我从服务器下载了证书,并将其安装到我的设备上。这是关于设备上经过验证的根证书。

最新更新