gpt4 book ai didi

android - 使用 .setAcceptThirdPartyCookies 响应 native 应用程序

转载 作者:行者123 更新时间:2023-11-30 01:09:45 25 4
gpt4 key购买 nike

我在 Webview 下的登录工作正常,但第二个页面没有从 Facebook SDK 恢复 response.status === 'connected'。

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

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

最佳答案

我知道这来晚了,但如果其他人在 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);
}

关于android - 使用 .setAcceptThirdPartyCookies 响应 native 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38536348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com