3

我知道为了在 phonegap 原生应用程序中使用 cookie,必须有一段代码可以启用它。

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

您能否建议我为 Android phonegap 1.8.0 应用程序启用 cookie 需要放置哪些代码和位置?

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

非常感谢。

干杯,西尼萨。

4

3 回答 3

10

如果您尝试使用本地 cookie (file://),您必须让父 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");
}
}
于 2012-06-18T14:27:26.443 回答
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){}

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

于 2012-10-12T14:16:59.597 回答
0

如果我的记忆很好,Phonegape 的模板会通过从 web 视图(类似于 : super.loadUrl("file:///android_asset/www/index.html");)加载您的启动网页(例如: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 的项目并重新启动应用程序。

于 2012-06-18T13:07:51.673 回答