HTTP/Moduleを使用して認証要求をサーバーに送信し、セッションCookieを返します。 iOSでは、これらのCookieは、後続のHTTP/ModuleリクエストとWebViewリクエスト間で自動的に共有されます。私はHTTP /モジュールとAndroidのWebViewの間でクッキーを共有しようとしています。私はクッキーの転送を実現するには、このコードを築き上げてきましたNativeScript/TypeScript HTTP/ModuleからAndroid上のWebビューへのクッキーを共有する
:
import application = require("application");
declare var android: any;
declare var java: any;
/** other code goes here **/
private static syncCookies_android() {
// // Get cookies from the URLSession
var javaCookieManager = java.net.CookieHandler.getDefault();
var cookieStore = javaCookieManager.getCookieStore();
var cookieList = cookieStore.getCookies();
console.log("cookieList: " + cookieList);
//Set the cookie for the web-view
var context = application.android.context;
var cookieSyncManager = android.webkit.CookieSyncManager.createInstance(context);
var cookieManager = android.webkit.CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
for (var cookie of cookieList) {
console.log("cookie: " + cookie);
cookieManager.setCookie(config.apiServerURL, cookie);
}
cookieSyncManager.sync();
}
これは近いですが、リスト内の項目を列挙しませんfor (var cookie of cookieList)
データ構造をループ。
出力: JS: cookieList: [CFID=9470738, CFTOKEN=22cf8b7e0e4d8778-4408CB33-C541-D779-2FECB8F2324F1CAA, MESSAGEMODE=chrono, BNI_OFPSSL=0000000000000000000000006901500a00005000] chromium: [INFO:library_loader_hooks.cc(104)] Chromium logging enabled: level = 0, default verbosity = 0
は、だから私は、私は私が期待して戻ってデータを取得しています知っているが、javascript配列のような役割を果たし形態であることとは思われません。
console.log("cookie: " + cookie);
が呼び出されることはありません。
のようなものに解決されること。これにより、値を配列としてループすることができます。しかし、 'setCookie'への私の呼び出しは、スレッドをクラッシュさせるようです。 – ahalls