RN webview支持手势和原生按钮返回
RN开发中会遇到使用webview嵌套h5的业务场景,如果在h5中还有页面切换或跳转,为了更好的交互体验可以在webview上做支持手势和原生按钮返回上一页的配置;具体配置如下:
const webViewRef = useRef(null);
const onAndroidBackPress = () => {
if (webViewRef.current) {
webViewRef.current.goBack();
return true; // prevent default behavior (exit app)
}
return false;
};
useEffect(() => {
if (Platform.OS === 'android') { // Android 监听原生返回事件
BackHandler.addEventListener('hardwareBackPress', onAndroidBackPress);
return () => {
BackHandler.removeEventListener('hardwareBackPress', onAndroidBackPress);
};
}
}, []);
<WebView
ref={webViewRef}
allowsBackForwardNavigationGestures // ios允许手势返回
/>