WebView - onReceivedHttpAuthRequest 永不停止



我在Android webview应用程序中陷入了一个死循环,该应用程序在onReceivedHttpAuthRequest函数上被阻止。

mWeb.setWebViewClient(new WebViewClient() {
   @Override
   public void onPageFinished(WebView view, String url) {
       mProgressBar.setVisibility(View.GONE);
   }
   @Override
   public void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler, String host, String realm) {
           if (isAdded())
               handler.proceed(getResources().getString(R.string.username), getResources().getString(R.string.pass));
   }
   @Override
   public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
       handler.proceed();
   }
});
mWeb.loadUrl(mUrl);

On Activity


    mWebView.LoadUrl(url);
    await Task.Delay(10000);                            
    if (!mWebView.IsShown | cliente.ErroReportado)
    {
        Toast t = Toast.MakeText(Android.App.Application.Context, "Erro ao acessar o servidor, verifique conexão, usuário e senha e tente novamente!", ToastLength.Long);
        t.SetGravity(GravityFlags.Center, 0, 0);
        t.Show();
        OnCreate(null);
    }
    }

在网络视图客户端上

class ViewClient : WebViewClient { MainActivity _activity; public int iTentativasLogin { get; private set; } public bool ErroReportado { get; private set; } public ViewClient(MainActivity activity) { _activity = activity; } public override void OnReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, string host, string realm) { Toast t ; if (Usuario.Length == 0 | Senha.Length == 0) { t = Toast.MakeText(Android.App.Application.Context, "Usuário ou senha não preenchidos", ToastLength.Long); t.SetGravity(GravityFlags.Center, 0, 0); t.Show(); handler.Cancel(); ErroReportado = true; } else { iTentativasLogin++; if (iTentativasLogin < 4) { handler.Proceed(Usuario, Senha); } else { t = Toast.MakeText(Android.App.Application.Context, "Usuário ou senha incorretos", ToastLength.Long); t.SetGravity(GravityFlags.Center, 0, 0); t.Show(); handler.Cancel(); ErroReportado = true; } } } }

最新更新