Webview适用于ICS,但不适用于Gingerbread

时间:2012-09-21 10:36:28

标签: android authentication webview

我有一个主要是webview的应用程序,它将尝试连接到我公司的网页。该页面是https并需要身份验证。当我在具有ICS的设备或仿真器上运行时,我正在使用的当前代码工作,但它在2.3.3上不起作用。我已经尝试为2.3.3构建它,这个版本已经在2.3.3和4.x上进行了测试,只适用于ICS。因此,如果我为ICS或Gingerbread构建它并不重要。

我尝试过针对类似问题的不同解决方案,但我无法让它发挥作用。

BrowserActivity:

public void onCreate(Bundle savedInstanceState) {
   ...
   mWebView.setWebChromeClient(new WebChromeClient());
   mWebView.setWebViewClient(new myWebClient());
   mWebView.getSettings().setJavaScriptEnabled(true);
   ...
   mWebView.loadUrl(urlString); //urlString is an https site
}

我的webclient类:

public class myWebClient extends WebViewClient{
   public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm){
      handler.proceed(username, password);
   }
   public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){           
      handler.proceed();
   }
   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
      super.onReceivedError(view, errorCode, description, failingUrl);
   }
}

这是我的应用程序的基本内容。我已经尝试登录不同的回调,但我没有收到任何SSL错误或“常规”错误。我在logcat中唯一看到的是,当我在Gingerbread上运行时,onReceivedHttpAuthRequest被一遍又一遍地调用。我已经检查过凭证是否正确,它们是正确的。我还可以提一下,我的清单中有<uses-permission android:name="android.permission.INTERNET"></uses-permission>

我已经与IT部门核实了服务器是否正在使用SNI,但他们告诉我它没有使用它。

有没有人知道为什么这不起作用的原因?如前所述,由于某些原因认证认证不起作用,因为我看到在Gingerbread中一遍又一遍地调用onReceivedHttpAuthRequest

问题是页面没有加载,webview保持空白。

0 个答案:

没有答案