Android 如果cookie过期,如何在webview中重定向到其他url?
每当登录cookie过期时,我必须检查加载URL是否以某个字符串结尾,然后我必须用另一个URL重定向它。我该怎么做Android 如果cookie过期,如何在webview中重定向到其他url?,android,cookies,webview,Android,Cookies,Webview,每当登录cookie过期时,我必须检查加载URL是否以某个字符串结尾,然后我必须用另一个URL重定向它。我该怎么做 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.endsWith("admin/login")) { SharedPreferences.Editor editor = sharedPrefere
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith("admin/login")) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("cookies", null).apply();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
// Log.d(C.TAG, "Using clearCookies code for API >=" + String.valueOf(Build.VERSION_CODES.LOLLIPOP_MR1));
CookieManager.getInstance().removeAllCookies(null);
CookieManager.getInstance().flush();
} else {
// Log.d(C.TAG, "Using clearCookies code for API <" + String.valueOf(Build.VERSION_CODES.LOLLIPOP_MR1));
CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(MainActivity.this);
cookieSyncMngr.startSync();
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
cookieManager.removeSessionCookie();
cookieSyncMngr.stopSync();
cookieSyncMngr.sync();
}
view.clearHistory();
view.clearCache(true);
view.loadUrl(URL_BASIC);
} return true;
}
@覆盖
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
if(url.endsWith(“admin/login”)){
SharedReferences.Editor=SharedReferences.edit();
putString(“cookies”,null).apply();
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.LOLLIPOP\u MR1){
//Log.d(C.TAG,“为API使用clearCookies代码>=”+String.valueOf(Build.VERSION\u CODES.LOLLIPOP\u MR1));
CookieManager.getInstance().removeAllCookies(null);
CookieManager.getInstance().flush();
}否则{
//Log.d(C.TAG,“使用clearCookies代码进行API”是否进入view.loadUrl()行?如果是,我建议添加一个只允许此代码启动一次的标志(并在加载完成时重置标志)。如果您没有达到这一行,您应该提供更多详细信息。首先,它进入视图,loadurl,然后它使用我提供的URL加载,然后再次进入shouldoverrideurloading,但使用我提供的URL。然后,它再次出现在admin/login中,因此再次调用view.loadurl。因此,您可能会进入某个循环-尝试什么我建议只允许调用一次loadUrl。如果需要进一步澄清,请告诉我。