Ein großes Problem bei der Verwendung von "stopLoading ()" ist, dass unter Android das weitere Tippen auf andere Links von dieser Quellseite deaktiviert wird.
Die WebView-Komponente wird aus dem Kern-RN in die Hände der Community aufgeteilt. Wenn Sie stattdessen diese Version verwenden ( https://github.com/react-native-community/react-native-webview ), können Sie die Requisite "onShouldStartLoadWithRequest" sowohl für iOS als auch für Android verwenden, wodurch dies viel eleganter wird.
Aufbauend auf Damien Varrons wirklich hilfreicher Antwort finden Sie hier ein Beispiel dafür, wie Sie diese Requisite nutzen können, um zu vermeiden, dass stopLoading plattformübergreifend funktioniert:
onShouldStartLoadWithRequest={event => {
if (event.url !== uri) {
Linking.openURL(event.url)
return false
}
return true
}}
Und so können Sie es tun, wenn Ihre Quelle HTML im Gegensatz zu einer URI ist:
onShouldStartLoadWithRequest={event => {
if (event.url.slice(0,4) === 'http') {
Linking.openURL(event.url)
return false
}
return true
}}
Wie basbase betonte, können Sie dies auch auf diese Weise tun (ich habe das about: blank-Teil hinzugefügt). Ich habe vor, mehr zu probieren, um herauszufinden, was am besten hält.
onShouldStartLoadWithRequest={event => {
if (!/^[data:text, about:blank]/.test(event.url)) {
Linking.openURL(event.url)
return false
}
return true
}}