1

ChildBrowser 内の Android 3.1+ でローカル Cookie (file://) を動作させようとしています。この特定の問題と、Cookie Manager を使用して修正する方法について説明しているブログの回答を見つけました。コードを挿入するプラグインの場所がわかりません。誰かがこれをうまく実装しましたか?


以下のコメントhttp://code.google.com/p/android/issues/detail?id=3739から

コメント 16 by edtechk...@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 に答える