通过webview进行Android身份验证

时间:2012-05-22 15:59:46

标签: android authentication android-webview

我很抱歉,因为我在这个Android开发中非常环保,而且我可能在这里击败了一匹死马 - 我们使用的软件有一个移动版本,但它是一个移动网站,我正在尝试使用webview将其构建为一个独立的网络应用程序。

该应用程序将让我进入登录屏幕,但当我尝试登录显示其登录的弹出窗口时,在我的网页浏览中,它仍然存在。它没有超越这一点。 在默认浏览器中,它可以正常工作。

你能帮助我做我需要做的事情,以最简单的方式通过这个吗? ;-)谢谢!

package com.giantflyingsaucer;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebPageLoader extends Activity
{
final Activity activity = this;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    setContentView(R.layout.main);
    WebView webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            activity.setTitle("Loading...");
            activity.setProgress(progress * 100);

            if(progress == 100)
                activity.setTitle(R.string.app_name);
        }
    });

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
        {
            // Handle the error
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);
            return true;
        }
    });

    webView.loadUrl("http://URL.USED.FOR/WEBAPP");
}
}

2 个答案:

答案 0 :(得分:1)

这是通过使用解决     @覆盖     public void onConfigurationChanged(Configuration newConfig){     super.onConfigurationChanged(NEWCONFIG);     }

答案 1 :(得分:0)

也许您的登录尝试使用某些网络插件。尝试添加其中一个或两个:

    mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
    mWebView.getSettings().setPluginsEnabled(true);