React Native – 중첩된 WebView의 반환 처리

1578 단어
코드를 직접 보려면 다음과 같이 하십시오.
import React, { Component } from 'react';
import { WebView, Platform, BackHandler } from 'react-native';




export default class BoxDemo extends Component {
  onNavigationStateChange = navState => {
    this.setState({
      backButtonEnabled: navState.canGoBack
    });
  };

  // //       
  // _goBackPage = () => {

  //   //       :backButtonEnabled: false,  webView       , true    webView     
  //   if (this.state.backButtonEnabled) {
  //     this.refs['webView'].goBack();
  //   } else {//          
  //     this.nav.goBack();
  //   }
  // };

  //          
  componentDidMount() {
    if (Platform.OS === 'android') {
      BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
    }
  }

  onBackAndroid = () => {
    //       :backButtonEnabled: false,  webView       , true    webView     
    if (this.state.backButtonEnabled) {
      this.refs['webView'].goBack();
      return true;
    } else {
     if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
        //  2    back ,      。
        return false;
      }
      this.lastBackPressed = Date.now();
      ToastAndroid.show('        ', ToastAndroid.SHORT);
      return true;
    }
  };



  render() {
    return (
      
    );
  }
}


원본 주소:http://www.cnblogs.com/zhengyeye/p/8036598.html

좋은 웹페이지 즐겨찾기