У меня есть собственное приложение, которое изначально работает на клиенте expo. Я использую веб-представление для входа на сервер идентификации и перенаправления обратно в приложение. Это работает нормально в рамках выставки. В автономном приложении для Android он перенаправляет обратно в приложение, но похоже, что он запускается снова, вместо того, чтобы идти к моему Linking.addEventListener, который у меня есть, чтобы извлечь данные из перенаправления.
Моя функция связывания:
componentDidMount = () => {
loginSrc = AUTHORIZATION_URL + "?" + getHybridRequestBody();
console.log(loginSrc);
Linking.addEventListener("url", this._onExtractCode);
}
componentWillUnmount = () => {
Linking.removeEventListener ("url", this._onExtractCode);
}
Мой модал, открывающий веб-просмотр
<Modal visible={this.state.showLoginModal} transparent={true}>
<View style={[styles.container, {flex: 1, backgroundColor: "white"}]}>
<TouchableOpacity style={{width: 35, height: 35}} onPress={this.onModalClose}>
<Ionicons name="ios-close" size={30} color={Colors.Teal} ></Ionicons>
</TouchableOpacity>
<WebView source={ { uri:loginSrc}} ></WebView>
</View>
</Modal>
URL для входа в систему:
io.testing.is://?callback=authentication
app.json:
"scheme": "io.testing.is",
Автономное приложение Android выполняет перенаправление на приложение, но не вызывает обратный вызов Linking.addEventListener _onExtractCode.
для ios я понятия не имею что будет