2017-12-25 19 views
0

저는 앱 (Webview 정확하게)을 가지고 있고 두 번째 페이지에서 첫 번째 페이지로 돌아가려면 Android 하드웨어 버튼을 처리하려고합니다. 내 문제는 이제 버튼이 앱을 더 이상 닫지 않아서 무엇을해야하는지 모른다. 여기에 내 코드는 다음과 같습니다React 네이티브 WebView 처리 android 하드웨어 버튼

export default class App extends Component { 
    constructor(props) { 
    super(props) 
    this.state={ 

    }; 

this.handleBackButtonClick = this.handleBackButtonClick.bind(this); 
} 

componentWillMount() { 
BackHandler.addEventListener('hardwareBackPress',this.handleBackButtonClick); 
} 
componentWillUnmount() { BackHandler.removeEventListener('hardwareBackPress',this.handleBackButtonClick); 
} 

onNavigationStateChange(navState){ 
    console.log(JSON.stringify(navState)); 
    canGoBack = navState.url == initialUrl && !navState.loading 
} 


handleBackButtonClick() { 
    this.refs[WEBVIEW_REF].goBack(); 
    return true; 
} 

답변

0

handleBackButtonClick의 반환 값은 응용 프로그램이 실행 여부를 유지할지 여부를 결정합니다.

현재 항상 true을 반환합니다. 대신 현재 탐색 상태가 앱 종료를 원하는지 여부를 확인한 다음 적절하게 false을 반환 할 수 있습니다.

handleBackButtonClick() { 
    const canGoBack = someCalculation(); 
    if(canGoBack) 
     this.refs[WEBVIEW_REF].goBack(); 
    } 
    return canGoBack; 
}