【问题标题】:Cordova InAppBrowser and shared cookie with webviewCordova InAppBrowser 和与 webview 共享的 cookie
【发布时间】:2015-04-22 23:23:28
【问题描述】:

显然,在 Android 上使用 _blank 时,InAppBrowser 不会存储当前会话 cookie。为了使这成为可能,我是否缺少一些设置?它似乎在 IOS 上完美运行,并且在排除故障时有点令人沮丧。当来自 oAuth 的回调发生并且我的服务器读取并分配当前会话所需的数据时,cookie 需要在那里。

我尝试过的...

1) Adding CookieManager to android Childbrowser(旧的,我知道)

2) target = _self 实际上会将cookie发送到服务器,但是打开的弹窗会在身份验证后关闭整个应用程序(而不是弹窗),必须手动重新打开

3) 更改各种 WebView 属性和设置无济于事。

【问题讨论】:

    标签: android angularjs cordova cookies inappbrowser


    【解决方案1】:

    在深入研究我的问题后,我发现 InAppBrowser 使用正常的 webview,而我的应用程序使用 Crosswalk webview 运行,因此两者变得脱节。

    我现在通过移除 Crosswalk 解决了这个问题。

    如果有人好奇的话,我的项目使用的是带有 Ionic Crosswalk 浏览器的 Ionic#1.3.11。

    如果有人对 Crosswalk 中的 cookie 问题有任何建议或解决方法,我们将不胜感激。

    【讨论】:

    • 我在 iOS 10 中遇到了同样的问题。你能在 iOS 中解决吗
    • Cookies 并不是与 Cordova/Phonegap 一起使用的最佳选择。我早就改用 JSON Web Tokens 和 localStorage。
    【解决方案2】:

    Crosswalk 似乎阻止您将 cookie 传递到 Android 设备上的 inAppBrowser。经过大量挖掘后,我找到了有关该问题的论坛讨论和可能的解决方案:

    https://forum.ionicframework.com/t/crosswalk-and-inappbrowser/25139

    https://github.com/Shoety/cordova-plugin-inappbrowserxwalk

    我们的团队尚未对此进行测试/实施,但看起来很有希望。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 我只是想帮忙。以后我会记住这一点,但如果这篇文章被删除,那么最初提出问题的人可能不再有可能解决他的问题。
    猜你喜欢
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2012-06-04
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多