1

我正在尝试让本地 cookie (file://) 在 ChildBrowser 中的 android 3.1+ 上工作。我发现一篇博客回复谈到了这个特定问题以及如何使用 Cookie Manager 来解决它。我不知道在插件中的哪个位置放置代码。有没有人成功地实现了这一点?


来自http://code.google.com/p/android/issues/detail?id=3739的评论如下

edtechk 发表的第 16 条评论...@gmail.com,2012 年 2 月 1 日 我得到了这个东西,对于 Android 2.2,javascript 的 document.cookie 工作正常,只需确保在您的 Webview...javascript 中启用如下:

yourWebViewVariable.getSettings().setJavaScriptEnabled(true);

对于 Android 3.1,只需将其添加到您的 java 文件 onLoadInit:

CookieManager.setAcceptFileSchemeCookies(true);   //This is the line that specifically makes it work so the other lines is optional

CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.acceptCookie();
4

1 回答 1

2

对于那些感兴趣的人,我想通了。这根本不是 Childbrowser 的问题。您必须让父 Phonegap 项目接受本地 cookie,然后 Childbrowser 也会接受。为此,您的 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:23:38.487 回答