From f16518d11b9f9eec8c3f13e2a08805e1eb7fecf9 Mon Sep 17 00:00:00 2001 From: Marc Woolfson Date: Mon, 21 Oct 2019 16:14:23 +0100 Subject: [PATCH] For Android devices, call `_removeLinkingListener()` once the redirect back to the app has been handled --- with-webbrowser-redirect/app/App.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/with-webbrowser-redirect/app/App.js b/with-webbrowser-redirect/app/App.js index 8cd887b..12b3fa4 100644 --- a/with-webbrowser-redirect/app/App.js +++ b/with-webbrowser-redirect/app/App.js @@ -2,6 +2,7 @@ import React from 'react'; import { Button, StyleSheet, Text, View } from 'react-native'; import { Linking } from 'expo'; import * as WebBrowser from 'expo-web-browser'; +import Constants from 'expo-constants'; export default class App extends React.Component { state = { @@ -29,7 +30,11 @@ export default class App extends React.Component { } _handleRedirect = event => { - WebBrowser.dismissBrowser(); + if (Constants.platform.ios) { + WebBrowser.dismissBrowser(); + } else { + this._removeLinkingListener(); + } let data = Linking.parse(event.url); @@ -67,7 +72,12 @@ export default class App extends React.Component { // just appends `authToken=` to the URL provided. `https://backend-xxswjknyfi.now.sh/?linkingUri=${Linking.makeUrl('/?')}` ); - this._removeLinkingListener(); + + // https://github.com/expo/expo/issues/5555 + if (Constants.platform.ios) { + this._removeLinkingListener(); + } + this.setState({ result }); } catch (error) { alert(error);