2017-09-12 4 views
1

Je suis nouveau à React Native et j'ai une application simple qui ouvre un Webview quand un bouton est pressé. Si l'état de navigation change, je veux fermer le Webview. Je suis capable de savoir quand le fermer mais incapable de trouver comment.Comment fermer un Webview React-Native?

Le document ne mentionne aucune fonction pour le faire. Quelle est la solution pour cela?

Version: réagir natif: 0.47.2

Répondre

0

vous pouvez l'ajouter dans Modal

_onNavigationStateChange (webViewState) { 
    this.hide() 
} 
show() { 
    this.setState({ modalVisible: true }) 
} 

hide() { 
    this.setState({ modalVisible: false }) 
} 

render() { 
const { clientId, redirectUrl, scopes } = this.props 
return (
    <Modal 
    animationType={'slide'} 
    visible={this.state.modalVisible} 
    onRequestClose={this.hide.bind(this)} 
    transparent 
    > 
    <View style={styles.modalWarp}> 
     <View style={styles.contentWarp}> 
     <WebView 
      style={[{ flex: 1 }, this.props.styles]} 
      source={{ uri: `http://google.com` }} 
      scalesPageToFit 
      startInLoadingState 
      onNavigationStateChange={this._onNavigationStateChange.bind(this)} 
      onError={this._onNavigationStateChange.bind(this)} 
     /> 
     <TouchableOpacity onPress={this.hide.bind(this)} style={styles.btnStyle}> 
      <Text style={styles.closeStyle}>close</Text> 
     </TouchableOpacity> 
     </View> 
    </View> 
    </Modal > 

) 
} 
+0

Merci, ça fonctionne comme je veux! – timp

+0

vous êtes les bienvenus –