【问题标题】:Android CookieSyncManagerAndroid CookieSyncManager
【发布时间】:2013-04-10 08:46:54
【问题描述】:

当我们使用它时,cookies 是否保持持久性?手机重启后 cookie 是否仍然可用?我指的是这个链接:http://developer.android.com/reference/android/webkit/CookieSyncManager.html

假设我们正在使用 DefaultHttpClient,CookieSyncManager 会知道抓取 cookie,或者是否还有其他命令,然后我们仍需要触发链接中的命令?我们如何取回 cookie?

【问题讨论】:

标签: java android http cookies


【解决方案1】:

根据Cookies & Webview - CookieSyncManager in Android! 看来,CookieSyncManager 可以与 android 构建的 webview 一起使用:

CookieSyncManager.createInstance(webview.this);

因此,如果他们的应用不基于 webview,则不会使用此功能。

【讨论】:

  • 虽然可以用来辅助WebViews,但不限于它们。对于您最初的问题,我认为它们在手机重启后不会持续存在,但如果您需要类似的东西,您可以查看 SharedPreferences。
  • HTTP调用时可以使用吗?
【解决方案2】:

尝试设置 CookieSyncManager.getInstance().sync();在“onPageFinished”方法中,这对我来说就像一个魅力,即使重新启动它也会对 cookie 进行管理:)

这里是代码:

public void onCreate(Bundle savedInstanceState) {   
CookieSyncManager.createInstance(web.getContext());
        web = new WebView(this);  
        web.getSettings().setJavaScriptEnabled(true);
    web.loadUrl(url);
        web.setWebViewClient(new myWebClient());
...

}

公共类 myWebClient 扩展了 WebViewClient { @覆盖 public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO 自动生成的方法存根 super.onPageStarted(view, url, favicon); }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        CookieSyncManager.getInstance().sync();
    }
}

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多