Implement Safari View Controller in React Native
expo-web-browser provides access to the system's web browser and supports handling redirects. On iOS, it uses SFSafariViewController or SFAuthenticationSession, depending on the method you call, and on Android it uses ChromeCustomTabs. As of iOS 11, SFSafariViewController no longer shares cookies with the Safari, so if you are using WebBrowser for authentication you will want to use WebBrowser.openAuthSessionAsync, and if you just want to open a webpage (such as your app privacy policy), then use WebBrowser.openBrowserAsync
https://docs.expo.io/versions/latest/sdk/webbrowser/
Sample code from reference:-
export default function App() {
const [result, setResult] = useState(null);
const _handlePressButtonAsync = async () => {
let result = await WebBrowser.openBrowserAsync('https://expo.io');
setResult(result);
};
return (
<View style={styles.container}>
<Button title="Open WebBrowser" onPress={_handlePressButtonAsync} />
<Text>{result && JSON.stringify(result)}</Text>
</View>
);
}
So right now, by using Linking.openURL...
you're sending your users to an external browser (safari on iOS).
The reviewer wants you to offer a better user experience by keeping your users into your app while still giving them all the features safari has.
To do that you have to use something called a Safari View Controller
(on iOS) which is basically like opening safari within your app.
Even-though the library you pointed to does exactly that, it's no longer maintained and it just works for iOS, so instead I'd use something more modern that works for Android as well:
https://github.com/proyecto26/react-native-inappbrowser