我在Webview下的登录效果很好,但第二页没有从Facebook SDK恢复response.status ==='connected'。
我在这里找到了解决方案Checking Facebook login state in a webView always returns unknown,但我的应用程序不是android native。
在反应原生应用程序中,我在哪里或如何验证以下内容:
If (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{CookieManager.getInstance().setAcceptThirdPartyCookies(mainWebView, true); }
答案 0 :(得分:1)
我知道这件事来得晚,但如果其他人在Android浏览器的网页浏览器中遇到问题,我认为这会有所帮助。
为了在webview中启用第三方cookie,您需要修改一些java代码。
因此,您实际需要build react native from source并修改react-native/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java
文件并添加您在创建webview时提及的行(或者可能会公开反应webview属性以启用第三方Cookie)。< / p>
在我的情况下,我在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);
}