WebView - onReceivedHttpAuthRequest永远不会停止

Pop*_*ena 5 android webview

我在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);
Run Code Online (Sandbox Code Playgroud)

小智 0

关于活动

\n\n
\n\n    mWebView.LoadUrl(url);\n    await Task.Delay(10000);                            \n    if (!mWebView.IsShown | cliente.ErroReportado)\n    {\n        Toast t = Toast.MakeText(Android.App.Application.Context, "Erro ao acessar o servidor, verifique conex\xc3\xa3o, usu\xc3\xa1rio e senha e tente novamente!", ToastLength.Long);\n        t.SetGravity(GravityFlags.Center, 0, 0);\n        t.Show();\n        OnCreate(null);\n    }\n    }\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 WebViewClient 上

\n\n

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

Run Code Online (Sandbox Code Playgroud)\n