【问题标题】:React native app using .setAcceptThirdPartyCookies使用 .setAcceptThirdPartyCookies 反应原生应用程序
【发布时间】:2016-07-22 22:56:35
【问题描述】:

我在 Webview 下的登录效果很好,但第二页没有从 Facebook SDK 恢复 response.status === 'connected'。

我在这里找到了解决方案Checking Facebook login state in a webView always returns unknown,但我的应用程序不是安卓原生的。

在 react 本机应用程序中,我可以在哪里或如何验证以下内容:
If (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {CookieManager.getInstance().setAcceptThirdPartyCookies(mainWebView, true); }

【问题讨论】:

    标签: android cookies reactjs webview native


    【解决方案1】:

    我知道这来晚了,但如果其他人在 android 上的 webview 中遇到 cookie 问题,我认为这会有所帮助。

    为了让您在 webview 中启用第三方 cookie,您需要修改一些 java 代码。

    因此,您实际上需要 build react native from source 并修改 react-native/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java 文件并添加您提到的创建 webview 的行(或者可能公开一个启用第三方 cookie 的 react webview 属性)。

    在我的例子中,我在 webview 初始化之后在createViewInstance 方法中添加了它,上面的行启用了 webview 的调试:

    if (ReactBuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      WebView.setWebContentsDebuggingEnabled(true);
    }
    

    我的代码现在看起来像这样:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
    }
    
    if (ReactBuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      WebView.setWebContentsDebuggingEnabled(true);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 2019-03-11
      • 2018-05-29
      • 2018-04-10
      • 2020-07-28
      • 2021-05-16
      相关资源
      最近更新 更多