2016-07-22 5 views
1

Мой логин в Webview работает хорошо, но вторая страница не восстанавливает response.status === 'connected' из SDK для Facebook.React native app using .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

Я знаю, что это приходит поздно, но если кто-то имеет проблемы с печеньем внутри WebView на андроид, я думаю, что это поможет.

Для того чтобы вы могли включить сторонние куки-файлы внутри webview, вам необходимо изменить некоторые Java-коды.

Так что вам действительно нужно build react native from source и внести изменения в файл react-native/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java и добавить ссылки, в которых вы указываете, где создается веб-просмотр (или, возможно, выставить ответ на свойство веб-просмотра, которое позволит сторонним куки-файлам).

В моем случае я добавил его в createViewInstance метод сразу после WebView инициализируется над следующими линиями, которые позволяют отладку 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); 
} 
Смежные вопросы