import { useEffect } from 'react'
import { Platform, BackHandler } from 'react-native'
const useGoBack = webviewRef => {
useEffect(() => {
if (Platform.OS === 'android') {
BackHandler.addEventListener('hardwareBackPress', handleBackPressed)
return () => {
BackHandler.removeEventListener('hardwareBackPress', handleBackPressed)
}
}
}, [])
const handleBackPressed = () => {
webviewRef.current?.goBack()
return true
}
}
export default useGoBack
import WebView from 'react-native-webview'
...
...
const webviewRef = useRef()
useGoBack(webviewRef)
...
<WebView
ref={webviewRef}
source={{ uri: 'http://localhost:3000/' }}
onMessage={onMessage}
allowsBackForwardNavigationGestures
style={{ marginTop: Constants.statusBarHeight }}
/>
...