Derzeit wird OnShouldStartLoadWithRequest nur unter iOS unterstützt. A PR to add support for this on Android wurde geschlossen. Wenn ein WebView unter Android versucht, ein benutzerdefiniertes URL-Schema zu öffnen, the app will crash - wodurch meine App ebenfalls abstürzt. Die App, an der ich gerade arbeite, muss ein WebView abfangen, das versucht, ein benutzerdefiniertes URL-Schema zu öffnen und es vor dem Öffnen dieser URL abzubrechen (was unter iOS false
auf OnShouldStartLoadWithRequest
ist eine großartige Möglichkeit, das zu tun).Verhindern, dass WebView URL in Android lädt (Reactive Native)
Was ist der beste Weg, dies unter Android zu tun?
Ich möchte diesen Code arbeiten:
<WebView
ref={WEBVIEW_REF}
source={{uri: INITIAL_URI}}
onShouldStartLoadWithRequest={this.onShouldStartLoadWithRequest}
style={{width, height: height - navBarHeight, backgroundColor: "#fff"}}
/>
onShouldStartLoadWithRequest(navigator) {
if (navigator.url.indexOf(INTERCEPT_URL) === -1) {
return true;
}
return false;
}
Ich bin persönlich mit so ziemlich alles in Ordnung, das funktioniert - einschließlich ReactWebViewManager.java
manuell ändern. Ich muss es nur aus der Tür holen.
Nach dem Aufruf von 'stopLoading()' behandelt meine WebView Touch-Ereignisse nicht mehr. Wenn der Benutzer auf einen Link klickt und ihn in seinem Browser öffnet, kann er später meine App öffnen, die immer noch das WebView anzeigt. Wenn sie versuchen, auf einen anderen Link in diesem WebView zu klicken, wird nichts unternommen. Bist du dem begegnet? – ckeeney