2017-01-04 13 views
5

私はAndroid webviewアプリケーションでデッドループに陥り、アプリケーションはonReceivedHttpAuthRequest関数でブロックされます。活動に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); 
+0

何が 'handler.proceed(getResources()。のgetString(R.string.username)、getResources()。のgetString (R.string.pass)); 'do? –

答えて

0



    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); 
    } 
    } 

WebViewClientで

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; } } } }
関連する問題