import android.content.Context import android.webkit.CookieManager import com.shsening.autouploadvideos.AppConfig import org.json.JSONObject object CookieHelper2 { private const val PREF_NAME = "CookieHelper" fun saveSessionProfileUrlCookies(context: Context, sessionProfileId: String, url: String, cookies: String) { println("进来了"+cookies) val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}") val sessionCookies = JSONObject(sessionCookiesMap!!) sessionCookies.put(url, cookies) sharedPreferences.edit().putString(sessionProfileId, sessionCookies.toString()).apply() println("结束了") } fun getAllSessionProfileCookies(context: Context, sessionProfileId: String): Map { val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}") val sessionCookies = JSONObject(sessionCookiesMap!!) return sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) } } fun removeCookiesForUrl(url: String) { val cookieManager = CookieManager.getInstance() val cookies = cookieManager.getCookie(url) // 获取特定 URL 的所有 Cookie if (cookies != null) { val cookieArray = cookies.split(";") // 按分号分隔多个 Cookie for (cookie in cookieArray) { val cookieParts = cookie.split("=") if (cookieParts.size > 0) { val cookieName = cookieParts[0].trim() // 设置一个过期的 Cookie 覆盖原来的 cookieManager.setCookie(url, "$cookieName=; Expires=Thu, 01 Jan 1970 00:00:00 GMT") } } // 确保将更改同步到存储中 cookieManager.flush() } } fun removeCookieForAllPlatform(){ AppConfig.SESSION_PROFILE_PALTFORM_LISTS.forEach { item -> removeCookiesForUrl(item.url) } } fun saveSessionCookies(context: Context,sessionProfileId:String) { var cookieManager = CookieManager.getInstance() AppConfig.SESSION_PROFILE_PALTFORM_LISTS.forEach { item -> val cookies = cookieManager.getCookie(item.url) if (cookies != null) { saveSessionProfileUrlCookies( context, sessionProfileId, item.url, cookies ) } } } }