Я установил пакет реагировать-навигацию в реагирующий-родной
Я реализовал навигацию по вкладкам, и один из них реализован в формате веб-просмотра.
Моя проблемачто если я нажимаю физическую кнопку «Назад» на Android, я перехожу из самого приложения на предыдущую вкладку, а не из веб-просмотра.
Я уже применил кнопку «Назад» для веб-просмотра в Интернете, ноЯ этого не делал.
Я пытался отобразить журнал onNavigationStateChange при отладке, но он не обновлялся при перемещении URL-адреса после его загрузки при первом запуске.Вот код, который я реализовал:
import React from "react";
import {BackHandler} from "react-native";
import {WebView} from "react-native-webview";
class SermonScreen extends React.Component {
constructor(props) {
super(props);
}
static navigationOptions = {
header: null
};
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton);
}
_onNavigationStateChange(navState) {
console.log(navState);
this.setState({
canGoBack: navState.canGoBack
});
}
handleBackButton = () => {
console.log(this.state);
if (this.state.canGoBack === true) {
this.webView.goBack();
return true;
} else {
return false;
}
};
render() {
return (
<WebView
source={{uri: 'https://m.youtube.com/channel/UCw3kP3qCCF7ZpLUNzm_Q9Xw/videos' }}
ref={(webView) => this.webView = webView}
onNavigationStateChange={this._onNavigationStateChange.bind(this)}
/>
);
}
}
export default SermonScreen;