私のアプリでは、一部のウェブページのwebviewタグを含むローカルのhtmlファイルの新しいウィンドウを開くだけです。しかし、私はクッキーを取得しようとすると、私は何も得ることができません。私は理由はクッキーがWebviewタグのURLにバインドされていると思うが、今私のローカルファイルが、私はローカルファイルのウィンドウを取得することができます。私はこの問題を解決する?nwjsのwebviewタグ内でクッキーを取得して設定するにはどうすればよいですか?
1
A
答えて
2
それが遅れるかもしれないが、私は将来の訪問者のためにこれを答える:私は最高の回避策なしでクッキーを設定および取得するための直接的な方法は、WebViewの要求インタセプタを使用して、要求と応答を変更することだと思うP
ヘッダこれは、より安全で信頼性が高く、nodewebkit、電子およびクロム拡張機能やアプリケーションで動作します:あなたは「connect.sid」と呼ばれるクッキーを変更したいと言うことができます例えばonBeforeSendHeaders
、 を使用することができますヘッダーを設定するので、
あなたは次のことを行うことができます:
var new_sessionId = "s%randskbksbdfmnsdbf345k345h34k5";
var $webview = $("#my-webview");
$webview.get(0).request.onBeforeSendHeaders.addListener(
function (details) {
details.requestHeaders.forEach(function (header) {
if (header.name === "Cookie") {
var cookies = header.value.split("; ");
var valid_cookies = cookies.filter(function (cookie) {
return cookie && cookie.indexOf("connect.sid") < 0;
});
valid_cookies.push("connect.sid=" + new_sessionId);
header.value = valid_cookies.join("; ");
}
});
return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]
);
$webview.attr("src","http://example.com");
し、使用することができますヘッダを読み込むためのonHeadersReceived
var $webview = $("#my-webview");
$webview.get(0).request.onHeadersReceived.addListener(function (details) {
details.responseHeaders.forEach(function (header) {
if (header.name === "set-cookie") {
var cookies = header.value.split("; ");
var sessionCookie = cookies.find(function (cookie) {
return cookie && cookie.indexOf("connect.sid") === 0;
});
if (sessionCookie) {
var sessionId = sessionCookie.split("=")[1];
console.log(sessionId);
}
}
});
},
{urls: ["<all_urls>"]},
["blocking", "responseHeaders"]
);
$webview.attr("src","http://example.com");
注:あなたも設定して、このメソッドを使用して、メインウィンドウのクッキーを取得する代わりにwebview.request
を遮断するあなたはchrome.webRequest
を傍受か、単に使用することができますすることができますchrome.cookies.set
とchrome.cookies.get
、これらはすべてクロムソースコードで見つかりました;)
関連する問題
- 1. メテオでクッキーを設定して取得するにはどうすればいいですか?
- 2. C#XML)特定のタグ内の値を取得するにはどうすればよいですか?
- 3. 安心してリクエストを使用してクッキーを設定するにはどうすればよいですか?
- 4. このタグ内のテキストをすべて取得するにはどうすればよいですか?
- 5. MAMP + MacOSx + PHPを使用してローカルホストにクッキーを設定するにはどうすればよいですか?
- 6. アンドロイドスタジオでwebviewを使用してjsonリクエストを取得するにはどうすればよいですか?
- 7. og:imageをページから取得するように設定するにはどうすればよいですか?
- 8. gitがすべてのプルで自動的にタグを取得するように設定するにはどうすればよいですか?
- 9. javaのxml属性値内でhtmlタグ値を取得するにはどうすればよいですか?
- 10. スクロールバーの位置を最初に取得して設定するにはどうすればよいですか?
- 11. ZopeとPloneでCookieを取得して設定するにはどうすればよいですか?
- 12. アラートメッセージ(iOS)なしでwebviewでジオロケーションの許可を取得するにはどうすればよいですか?
- 13. ini4j - 設定ですべてのキー名を取得するにはどうすればよいですか?
- 14. HTMLタグ内でイメージURLを取得するにはどうすればよいですか?
- 15. 属性内でタグ値を取得するにはどうすればよいですか?
- 16. XPATHで特定のタグを取得するにはどうすればよいですか?
- 17. WebViewで「ユーザー同意」を得るにはどうすればよいですか?
- 18. <ng-content>タグ内のレンダリング方法を設定するにはどうすればよいですか?
- 19. HTMLページソースから特定のhtml divタグを取得するにはどうすればよいですか?
- 20. Gradleプロジェクトのすべての設定のリストを取得するにはどうすればよいですか?
- 21. C#で「セッション」にクッキーの有効期限を設定するにはどうすればよいですか?
- 22. divタグ値を取得してCSSファイルで使用するにはどうすればよいですか?
- 23. markdown.extensions.attr_listを使用して空のタグを取得するにはどうすればよいですか?
- 24. Android:タグを使用してフラグメントインスタンスのレイアウトを取得するにはどうすればよいですか?
- 25. 特定のタグを持つRackSpaceサーバーを取得するにはどうすればよいですか?
- 26. next.jsのgetInitialPropsメソッドを使用してクッキーを取得するにはどうすればいいですか?
- 27. ランタイムパラメータで設定されたGuiceからシングルトンを取得するにはどうすればよいですか?
- 28. selectタグからidをparamsとして取得するにはどうすればよいですか?
- 29. どのように治療応答からクッキーを取得し、次のリクエストにクッキーを設定しますか?
- 30. SwiftのWkWebViewでクッキーを設定するにはどうすればよいですか?