Currently startApp is called from global context which results in the
app being launched when headlessJs tasks run in the background.
In order to support this use case, while not breaking existing users,
this commit adds two mechanisms which should help users detrmine if
the native Activity is running and startApp can be called safely.
1. RNN.appLaunched event is emitted is SplashActivity starts and react
context has already been created. This is the use case of openeing
the app while headless js task was started or has just finished and
react context is in a "pasued" state.
2. Navigation.isAppLaunched() convenience method has been added.
It returns a promise which when resolved, indicates if the app
is launched and we should show the ui or not.
Usage
import {Navigation, NativeEventsReceiver} from 'react-native-navigation';
Promise.resolve(Navigation.isAppLaunched())
.then(appLaunched => {
if (appLaunched) {
startApp();
} else {
new NativeEventsReceiver().appLaunched(startApp);
}
});
function startApp() {
Navigation.startTabBasedApp({ ... });
}