mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Set iOS AppState to inactive when app is launching (#37690)
Summary: When an iOS app launches, the current `AppStateStatus` that is returned is `"unknown"`. However, `RCTSharedApplication().applicationState` returns `UIApplicationStateInactive` - which makes sense since the app is still showing its launch screen. I suggest to return `"inactive"` instead of `"unknown"`, since it makes more sense and `"unknown"` is not mentioned in the [official documentation](https://reactnative.dev/docs/appstate). I also edited the annotation for the `"inactive"` status type to make it more accurate. bypass-github-export-checks ## Changelog: [IOS] [CHANGED] - Set initial AppState status to "inactive" instead of "unknown" Pull Request resolved: https://github.com/facebook/react-native/pull/37690 Test Plan: I played a bit with the `rn-tester` app to display the `AppStateExample` [component](https://github.com/facebook/react-native/blob/main/packages/rn-tester/js/examples/AppState/AppStateExample.js). I did not manage to display its content, but I managed to render it and log from [its render function](https://github.com/facebook/react-native/blob/main/packages/rn-tester/js/examples/AppState/AppStateExample.js#L84). This is what I log in the `render` function:  Here is the log I saw before the change:  and after the change:  Reviewed By: cortinico Differential Revision: D46729548 Pulled By: cipolleschi fbshipit-source-id: 18d2d606e0b77306811bd898b28858746c713e12
This commit is contained in:
committed by
Facebook GitHub Bot
parent
09c95413dd
commit
54a5ff9745
+1
-1
@@ -24,7 +24,7 @@ import {NativeEventSubscription} from '../EventEmitter/RCTNativeAppEventEmitter'
|
||||
* App States
|
||||
* active - The app is running in the foreground
|
||||
* background - The app is running in the background. The user is either in another app or on the home screen
|
||||
* inactive [iOS] - This is a transition state that currently never happens for typical React Native apps.
|
||||
* inactive [iOS] - This is a transition state that happens when the app launches, is asking for permissions or when a call or SMS message is received.
|
||||
* unknown [iOS] - Initial value until the current app state is determined
|
||||
* extension [iOS] - The app is running as an app extension
|
||||
*
|
||||
|
||||
@@ -20,7 +20,11 @@ static NSString *RCTCurrentAppState()
|
||||
static NSDictionary *states;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
states = @{@(UIApplicationStateActive) : @"active", @(UIApplicationStateBackground) : @"background"};
|
||||
states = @{
|
||||
@(UIApplicationStateActive) : @"active",
|
||||
@(UIApplicationStateBackground) : @"background",
|
||||
@(UIApplicationStateInactive) : @"inactive"
|
||||
};
|
||||
});
|
||||
|
||||
if (RCTRunningInAppExtension()) {
|
||||
|
||||
Reference in New Issue
Block a user