如何为Android phonegap 1.8.0应用程序启用Cookie?

如何为Android phonegap 1.8.0应用程序启用Cookie?,android,cookies,cordova,Android,Cookies,Cordova,我明白为了在phonegap原生应用程序中使用cookie,必须有一段代码来启用它 当使用xcode 4为iOS构建phonegap时,phonegap模板中有这样一段代码 您能告诉我需要输入哪些代码和位置才能为Android phonegap 1.8.0应用程序启用Cookie吗 请注意,我正在使用EclipseIndigo3.7.2构建应用程序 非常感谢 干杯, Sinisa.如果我的记忆很好,Phonegape的模板通过从webview(类似于:super.loadUrl()file://

我明白为了在phonegap原生应用程序中使用cookie,必须有一段代码来启用它

当使用xcode 4为iOS构建phonegap时,phonegap模板中有这样一段代码

您能告诉我需要输入哪些代码和位置才能为Android phonegap 1.8.0应用程序启用Cookie吗

请注意,我正在使用EclipseIndigo3.7.2构建应用程序

非常感谢

干杯,
Sinisa.

如果我的记忆很好,Phonegape的模板通过从webview(类似于:
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项目并重新启动应用程序。

如果您试图使用本地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");
}
}
你真的想这么做吗

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){}

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

setAcceptFileSchemeCookies在Android版本10上不可用。默认情况下它是开着的吗?如果您想在API lvl 12之前使用它,请尝试添加
CookieManager.getInstance().setAcceptCookie(true)右下方
super.loadUrl(…)而不是上面的示例。这应该从API第1级开始工作。对于低于12级的API,CookieManager.getInstance().setAcceptCookie(true);就在super.loadUrl(…)下面,它不工作。我遗漏了什么吗?如何让cookies在与web服务器的ajax通信中可用?