如何为Android phonegap 1.8.0 app启用cookies?

时间:2012-06-18 12:43:06

标签: android cookies cordova

据我所知,为了在phonegap原生应用程序中使用cookies,必须有一段能够启用它的代码。

使用xcode 4为iOS构建phonegap时,phonegap模板中有这样的代码。

您能否告诉我哪些代码以及我需要在哪里为Android phonegap 1.8.0应用启用Cookie?

请注意,我正在使用eclipse Indigo 3.7.2来构建应用程序。

非常感谢。

干杯, 西尼沙。

3 个答案:

答案 0 :(得分:10)

如果您尝试使用本地cookie(文件://),则必须让父Phonegap项目接受本地cookie。为此,您应该在PhoneGap项目中有一个名为youappname.java的文件,可能包含以下内容:

import android.os.Bundle;
import org.apache.cordova.*;

public class App extends DroidGap {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html");
}
}

修改它看起来像这个例子:

import android.os.Bundle;
import android.webkit.CookieManager;
import org.apache.cordova.*;

public class App extends DroidGap {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    CookieManager.setAcceptFileSchemeCookies(true);
    super.onCreate(savedInstanceState);
    super.loadUrl("file:///android_asset/www/index.html");
}
}

答案 1 :(得分:3)

你真的想做

import android.webkit.CookieManager;
import org.apache.cordova.*;

public class MainActivity extends DroidGap {

  @Override
  public void onCreate(Bundle savedInstanceState) {
      try{
          CookieManager.setAcceptFileSchemeCookies(true);
      }catch(Throwable e){}

由于较旧的Android版本上不存在CookieManager

答案 2 :(得分:0)

如果我的回忆很好,Phonegape的模板会从webview加载你的初创网页(例如:index.html)(类似于:super.loadUrl("file:///android_asset/www/index.html");)。后者在主活动中声明(“.java”文件)。

首先,找到加载Web应用程序的指令。然后,在webview.loadUrl之前添加以下行,以便您可以获得以下内容:

CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
webView = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
super.loadUrl("file:///android_asset/www/index.html");

最后,刷新Android的项目并重新使用该应用程序。