我想在登录后重定向到我的主要活动。登录后重定向到主要活动
,当我把这个代码,我得到这个错误:
的方法parseObssoCookie(字符串,字符串)是未定义的类型LoginActivity.Callback LoginActivity.java
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class LoginActivity extends Activity {
private WebView webView;
LoginActivity webActivity;
public static String loginCookie = null;
private static CookieManager cookieManager;
ProgressDialog progDailog;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
webActivity = this;
webView = (WebView) findViewById(R.id.LoginWebView);
progDailog = ProgressDialog.show(this, "Loading Application",
"please wait while page is loading..", true);
// use cookies to remember a logged in status
cookieManager = CookieManager.getInstance();
cookieManager.setCookie("set-cookie",null);
cookieManager.removeAllCookie();
cookieManager.setAcceptCookie(true);
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
String url = "https://www.example.com/login.aspx"; //the web url
loginCookie = cookieManager.getCookie(url);
String obsso = parseObssoCookie(url, "ObSSOCookie");
if ((loginCookie != null) && (obsso != null)
&& (!"loggedoutcontinue".equalsIgnoreCase(obsso))) {
finish();
Intent intent = new Intent(this, ActivityMainTabHolder.class);
startActivity(intent);
} else {
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new Callback());
webView.loadUrl(url);
}
}
private class Callback extends WebViewClient {
@override
public void onpagestarted(webview view, string url, bitmap favicon) {
// todo auto-generated method stub
progdailog.dismiss();
super.onpagestarted(view, url, favicon);
}
@override
public boolean shouldoverrideurlloading(webview view, string url) {
return super.shouldoverrideurlloading(view, url);
}
@override
public void onpagefinished(webview view, string url) {
// todo auto-generated method stub
super.onpagefinished(view, url);
logincookie = cookiemanager.getinstance().getcookie(url);
if (logincookie != null) {
string obsso = parseobssocookie(url, "obssocookie");
if ((obsso != null)
&& !("loggedoutcontinue".equalsignorecase(obsso))) {
finish();
intent intent = new intent(webactivity, activitymaintabholder.class);
startactivity(intent);
}
}
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
cookieManager = CookieManager.getInstance();
cookieManager.setCookie("set-cookie",null);
cookieManager.removeAllCookie();
cookieManager.setAcceptCookie(true);
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
super.onResume();
}
}
编辑:
@Deepak:我做了你所说的,但仍然没有将我重定向到ActivityyMainTabHolder.class。
见下面我的代码:
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class LoginActivity extends Activity {
private WebView webView;
LoginActivity webActivity;
public static String loginCookie = null;
private static CookieManager cookieManager;
ProgressDialog progDailog;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
webActivity = this;
webView = (WebView) findViewById(R.id.LoginWebView);
progDailog = ProgressDialog.show(this, "Loading Application",
"please wait while page is loading..", true);
// use cookies to remember a logged in status
cookieManager = CookieManager.getInstance();
cookieManager.setCookie("set-cookie",null);
cookieManager.removeAllCookie();
cookieManager.setAcceptCookie(true);
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
String url = "https://www.example.com/login.aspx"; //the web url
loginCookie = cookieManager.getCookie(url);
String obsso = parseObssoCookie(url, "ObSSOCookie");
if ((loginCookie != null) && (obsso != null)
&& (!"loggedoutcontinue".equalsIgnoreCase(obsso))) {
Intent intent = new Intent(webActivity, ActivityMainTabHolder.class);
startActivity(intent);
finish();
} else {
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new Callback());
webView.loadUrl(url);
}
}
private String parseObssoCookie(String url, String string) {
// TODO Auto-generated method stub
return null;
}
private class Callback extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
progDailog.dismiss();
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
loginCookie = CookieManager.getInstance().getCookie(url);
if (loginCookie != null) {
String obsso = parseObssoCookie(url, "ObSSOCookie");
if ((obsso != null)
&& !("loggedoutcontinue".equalsIgnoreCase(obsso))) {
Intent intent = new Intent(webActivity, ActivityMainTabHolder.class);
startActivity(intent);
finish();
}
}
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
cookieManager = CookieManager.getInstance();
cookieManager.setCookie("set-cookie",null);
cookieManager.removeAllCookie();
cookieManager.setAcceptCookie(true);
CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
super.onResume();
}
}
亲爱的迪帕克,我取代,但它不重定向我到我ActivityMainTabHolder.class。它在登录后仍保持在同一页面上。我创建了这个字符串public String parseObssoCookie(String url,String string){ \t \t // TODO自动生成方法存根 \t \t return null; \t} – a2zbollywood 2014-10-19 04:58:27