J'essaie d'ouvrir la fenêtre du navigateur sans quitter l'application lorsque je clique sur une URL (pour iOS et Android).
Le comportement doit être le suivant (avec l'exemple d'application airbnb):
Comment puis-je faire ceci? Dois-je utiliser une bibliothèque existante spécifiée?
J'utilise 0.37 réactif natif, btw.
Merci.
Vous pouvez utiliser le nouveau plugin InAppBrowser pour React Native , vérifiez l'exemple suivant:
import { Linking } from 'react-native'
import InAppBrowser from 'react-native-inappbrowser-reborn';
...
async openLink() {
try {
const isAvailable = await InAppBrowser.isAvailable()
const url = 'https://www.google.com'
if (isAvailable) {
InAppBrowser.open(url, {
// iOS Properties
dismissButtonStyle: 'cancel',
preferredBarTintColor: 'gray',
preferredControlTintColor: 'white',
// Android Properties
showTitle: true,
toolbarColor: '#6200EE',
secondaryToolbarColor: 'black',
enableUrlBarHiding: true,
enableDefaultShare: true,
forceCloseOnRedirection: true,
}).then((result) => {
Alert.alert(JSON.stringify(result))
})
} else Linking.openURL(url)
} catch (error) {
Alert.alert(error.message)
}
}
...
D'autre part, vous pouvez utiliser ce plugin avec des liens profonds, vérifiez le README du projet.
Sur iOS SafariView
Module natif tiers - https://github.com/naoufal/react-native-safari-view
Sur Android CustomTabs
Module natif tiers - https://github.com/droibit/react-native-custom-tabs - cependant si le l'utilisateur n'a pas Chrome installé, il ouvrira le lien en dehors de votre application dans son navigateur par défaut.
Vous pouvez utiliser un <WebView>
mais cela n'utilise pas le vrai navigateur - http://facebook.github.io/react-native/releases/0.47/docs/webview.html#webview
import React, { Component } from 'react';
import { WebView } from 'react-native';
class MyWeb extends Component {
render() {
return (
<WebView
source={{uri: 'https://github.com/facebook/react-native'}}
style={{marginTop: 20}}
/>
);
}
}
Utilisez React Native Custom Tabs pour ouvrir la fenêtre du navigateur dans l'application en React native. Il prend en charge les deux plates-formes Android et iOS
Vous pouvez utiliser React Native In-App Browser Reborn . Il fonctionne parfaitement sur les deux Android et iOS.
Cette bibliothèque utilise react-native-safari-view
(SafariView) sur iOS et react-native-custom-tabs
(ChromeView) sur Android.