Есть идея, вы можете попытаться использовать Appstate для ее обработки.
Обнаружить, что приложение выходит на передний план, а затем закрыть модал, может быть, оно может работать?
Это пример appstate (функционала) в документе, закройте модальное в строке консоли. (Если вы используете компонент класса, то же самое применимо к теории document пример класса)
import React, { useEffect, useState } from "react";
import { AppState, StyleSheet, Text, View } from "react-native";
const AppStateExample = () => {
const [appState, setAppState] = useState(AppState.currentState);
useEffect(() => {
AppState.addEventListener("change", _handleAppStateChange);
return () => {
AppState.removeEventListener("change", _handleAppStateChange);
};
}, []);
const _handleAppStateChange = nextAppState => {
if (appState.match(/inactive|background/) && nextAppState === "active") {
console.log("App has come to the foreground!"); // Close the Modal here
}
setAppState(nextAppState);
};
return (
<View style={styles.container}>
<Text>Current state is: {appState}</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center"
}
});
export default AppStateExample;
Попробуй.