Мое приложение использует Instagram OAuth, оно открывает страницу входа в Instagram с этого URL:
"https://www.instagram.com/oauth/authorize/client_id=${clientId}&redirect_uri=${redirectUrl}&response_type=${responseType}&scope=${scopes.join('+')}"
Здесь пользователь может ввести свое имя пользователя и пароль и нажать кнопку входа. Однако при первом входе в Instagram вылетает ошибка. Во второй раз, когда открывается ссылка, она содержит данные о пользователях и перемещает пользователя на домашний экран приложения.
Error
Эта страница не может быть загружена. Если в вашем браузере отключены файлы cookie или вы просматриваете в частном режиме, попробуйте включить файлы cookie или отключить частный режим, а затем повторите попытку.
Вот функция рендеринга webView;
render() {
const { uri } = this.state;
if(this.state.loading){
return <SpinnerComponent size={'small'}/>;
}
return (
<View style={{ flex: 1 }}>
<WebView
startInLoadingState
onNavigationStateChange={this.onNavigationStateChange.bind(this)}
source={{ uri }}
style={{flex: 1}}
/>
</View>
);
}
Примечание
Я использую пакет Reaction-native-cookie для удаления файлов cookie, принадлежащих Instagram, когда пользователь выходит из приложения. Это, скорее всего, проблема. Однако я не могу удалить этот пакет из моей базы кода, потому что это необходимая часть процедуры выхода из системы. Чтобы противостоять этому, я реализовал приведенный ниже код в методе LifeCycle «componentDidMount» WebView, чтобы получать куки с сайта. Но это не помогает моему делу.
Вот вопрос о потоке стека, в котором возникла та же проблема. Однако данное решение дано в Obj-C или Swift, о которых я ничего не знаю. Я не смог найти решение для React Native.