Ich versuche, eine Komponente, die eine Website mit WebView
anzeigen und dann automatisch die Benutzerinformationen zur Anmeldung ausfüllen. Ich kümmerte mich um die Auto-Füllung Teil, indem Sie ein wenig Javascript in die WebView
mit der injectedJavascipt
Prop.
Aber die Sache ist, ich möchte die WebView
(die Anmeldeseite) verstecken, zeigen einen Ladebildschirm und nur anzeigen, wenn der Benutzer auf der Website eingeloggt ist. Da ich mit der Website nicht in irgendeiner Weise in Wechselwirkung treten kann, ist meine Abhilfe der flex
Stütze der WebView
-0 und wenn die Anmeldung abgeschlossen ist, setzen Sie sich auf 1 unter Verwendung von setNativeProps()
einzustellen.
Gibt es überhaupt für mich zu wissen, wenn die Website Logins abgeschlossen hat, damit ich dann die WebView
zeigen kann? Wenn nicht, gibt es eine andere Möglichkeit, meine WebView
zu verstecken und sie anzuzeigen, wenn die Website die Logins abgeschlossen hat?
tl; dr: Grundsätzlich möchte ich meine WebView
laden einige Sachen im Hintergrund, während einige Ladebildschirme angezeigt werden und signalisieren mir, wenn diese Dinge erledigt sind.Wie kann ich das WebView verbergen, bis die Webseite fertig ist? [reactive native]
Antwort
Hacky aber vielleicht könnten Sie nach der URL suchen, wenn der Benutzer vollständig eingeloggt ist und dann die Flex-Eigenschaft ändern?
navChanged(navState) {
if(navState.url.match(loggedInURL){
//set flex to 1
};
}
<WebView
source={{uri: this.state.url}}
onNavigationStateChange={this.navChanged}
startInLoadingState={true}
renderLoading={
()=> {
return (<ActivityIndicator />)
}
}
/>
Ich habe es selbst nicht versucht, aber ich denke, so etwas wie das folgende tun sollten, was Sie wollen. Die WebView hat Laden ähnliche Requisiten wie onLoad
, onLoadStart
, onLoadEnd
, onError
usw. In diesen können Sie Ihre Komponente Zustand aktualisieren. Immer wenn Sie this.setState
aufrufen, wird die Komponente render()
erneut ausgelöst und basierend auf dem aktuellen Status rendert sie die Ansicht, an die Sie sie senden.
class MyComponent extends Component {
constructor(props){
super(props)
this.state={
isLoading:false
}
}
render() {
if (this.state.isLoading) {
return <Spinner visible={true}/>
} else
return <WebView onLoadStart={() => this.setState({isLoading:true})} onLoadEnd={() => this.setState({isLoading:false})}/>
}
}
}
danke ich habe versucht, aber die Anmeldeseite zeigte immer noch. Das WebView betrachtet injected JavaScript nicht als Teil seines Ladezustands. Gibt es eine Möglichkeit, IsLoading zu ändern, wenn injectedJavascript beendet wird? – Danopie
Ist auf diese Weise das WebView eigentlich nicht geladen? – NinetyHH
- 1. Reactive Native WebView Ladefehlerbehandlung
- 2. Wie kann ich die Verarbeitung stoppen, bis setTimeout() fertig ist?
- 3. Turbolinks funktioniert nicht mit reactive-native webview
- 4. Android reactive-native WebView kann Google Map nicht öffnen
- 5. Datei wird nicht fertig geschrieben, bis das Skript fertig ist
- 6. Reactive Native View Rendern
- 7. Warten bis Tomcat fertig ist
- 8. Reactive Native UI-Komponente Methode
- 9. Reactive Native onActivityResult funktioniert nicht
- 10. Wie warten, bis ein Animator fertig ist?
- 11. Warten, bis System.Diagnostics.Process.Start fertig ist
- 12. Kann ich in Android Webview das DOM einer Webseite ändern?
- 13. Winkelmesser: Wie warten, bis executeAsyncScript fertig ist?
- 14. Native Anzeigen in Reactive Native
- 15. Javascript Alert funktioniert nicht in android reactive-native webview
- 16. Wie warten, bis ein ThreadPoolExecutor fertig ist
- 17. Webview auf reactive-native Android lädt nicht einbetten youtube url
- 18. Wie kann ich Bilder in "Reactive Native Component" bedingt einfügen?
- 19. Reactive Native File Chooser
- 20. Wie kann ich reactive-native-router-flux mit Relay integrieren
- 21. C++ Variable ändert sich nicht, bis das Gewinde fertig ist
- 22. UWP ThreadPoolTimer warten, bis das Arbeitselement fertig ist
- 23. Reactive Native Telefonnummer Eingabe
- 24. Reactive-native Leistungsmonitor
- 25. Reactive Native Error: Der Elementtyp ist ungültig.
- 26. Reactive Native fixed footer
- 27. Reactive Native onHostDestroy()
- 28. Reactive-native Native Element Erkennung
- 29. Reactive native Nullwertüberprüfung
- 30. Warten bis ein SwingWorker fertig ist?
danke aber die Anmeldeseite zeigte immer noch – Danopie
Sorry mein schlecht, ich habe die Frage falsch gelesen. Ich habe meine Antwort aktualisiert, würde das helfen? Ändert sich die URL, wenn der Benutzer erfolgreich angemeldet ist? –