0

我有一个应用程序,主要是一个网络视图,它将尝试连接到我的公司网页。该页面是 https 并且需要身份验证。当我在具有 ICS 的设备或模拟器上运行时,我正在使用的当前代码有效,但它不适用于 2.3.3。我已经尝试为 2.3.3 构建它,该版本已经在 2.3.3 和 4.x 上进行了测试,并且仅适用于 ICS。因此,我是否为 ICS 或 Gingerbread 构建它并不重要。

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

浏览器活动:

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
}

我的网络客户端类:

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,但他们告诉我它没有使用它。

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

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

4

0 回答 0