3

phonegapネイティブアプリ内でCookieを使用するには、それを可能にするコードが必要であることを理解しました。

xcode 4を使用してiOS用のphonegapを構築する場合、phonegapテンプレート内にそのようなコードがあります。

Android phonegap 1.8.0アプリのCookieを有効にするために、どのコードとどこに配置する必要があるかを教えてください。

アプリの構築にはEclipseIndigo3.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){}

古いバージョンの Android には CookieManager が存在しないため、

于 2012-10-12T14:16:59.597 に答える
0

私の記憶がよければ、Phonegape のテンプレートは、Web ビュー (: のようなもの) からロードすることによって、起動 Web ページ (例: 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 のプロジェクトを更新し、アプリを再起動します。

于 2012-06-18T13:07:51.673 に答える