2016-07-22 300 views
1

我在Webview下的登录效果很好,但第二页不能恢复来自Facebook SDK的response.status ==='connected'。使用.setAcceptThirdPartyCookies反应原生应用

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

在反应本地应用程序在哪里,我怎么能确认以下内容:
If (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {CookieManager.getInstance().setAcceptThirdPartyCookies(mainWebView, true); }

回答

1

我知道这来得晚,但如果有其他人在Android网页视图中的cookies的问题,我认为这将有助于。

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

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

在我的情况下,我加入它createViewInstance方法web视图上面下面的线,使网页流量的调试初始化之后:

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); 
}