我尝试将其他域名的链接重定向到设备的默认浏览器。
例如:
我尝试了很多东西,但我仍然无法使其发挥作用。我考虑将onNavigationStateChange
与链接一起使用。
感谢您的帮助。
import React from 'react';
import { StyleSheet, View, WebView } from 'react-native';
import { Constants } from 'expo';
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<View style={styles.statusBar} />
<WebView
source={{uri: 'https://example.com'}}
renderError={() => alert('Merci de vérifier votre connexion Internet', 'Internet non disponible')}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
statusBar: {
backgroundColor: "#1D3B57",
height: Constants.statusBarHeight,
}
});
答案 0 :(得分:1)
解决方案1:
onNavigationStateChange(e)
{
if(e.url !== this.state.oldUrl)
{
// If url changed
if(/youtube.com/.test(e.url)) // RegExp
{
this.refs.WEBVIEW_REF.goBack()
Linking.canOpenURL(e.url).then(supported => {
if (supported) return Linking.openURL(e.url)
})
}
this.setState({ oldUrl: e.url })
}
}
解决方案2:
考虑查看this PR以向JS公开本地shouldOverrideUrlLoading
方法。这样做可能有点复杂。