Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果cookie过期,如何在webview中重定向到其他url?_Android_Cookies_Webview - Fatal编程技术网

Android 如果cookie过期,如何在webview中重定向到其他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

每当登录cookie过期时,我必须检查加载URL是否以某个字符串结尾,然后我必须用另一个URL重定向它。我该怎么做

        @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。如果需要进一步澄清,请告诉我。