Orientation and Statusbar

cordova-plugin-screen-orientation, Splashscreen and Statusbar

cordova-plugin-screen-orientation (3.0.4) makes the standard screen.orientation.lock() work in the app, where a browser allows it only in full-screen mode. cordova-plugin-statusbar (4.0.0) controls the status bar from JavaScript at run time, where config.xml's StatusBarBackgroundColor (Identity and Preferences) sets it once:

Locking to landscape, then recoloring the status bar
await screen.orientation.lock('landscape');
await new Promise((resolve) => setTimeout(resolve, 2000));
const locked = screen.orientation.type;
screen.orientation.unlock();
StatusBar.backgroundColorByHexString('#2E7D32');
({ locked, statusBarVisible: StatusBar.isVisible });
Output
{ locked: 'landscape-primary', statusBarVisible: true }

The pause matters: lock() resolves before the activity has rotated, and reading screen.orientation.type at once still returned portrait-primary. To fix one orientation for the whole app, use <preference name="Orientation" value="portrait" /> in config.xml instead.

cordova-plugin-splashscreen belongs to the past on Android. Since cordova-android 11, the platform shows Android 12's system splash screen itself, configured with the AndroidWindowSplashScreen... preferences BookNest already uses (Icons and Splash Screens), through a built-in CordovaSplashScreenPlugin class in CordovaLib. Installing the old plugin anyway (Managing Plugins) added a second implementation: a SplashScreen feature in the generated res/xml/config.xml, loaded at startup, that runs the plugin's own class alongside the built-in one. Keep it out of Android projects.