2016-07-22 299 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); 
}