cordova-plugin-statusbar icon indicating copy to clipboard operation
cordova-plugin-statusbar copied to clipboard

Playing video on iOS and shifting from landscape to portrait messes up status bar

Open sithwarrior opened this issue 1 year ago • 4 comments

Bug Report

Playing video on iOS and shifting from landscape to portrait messes up status bar

same as #221

Problem

What is expected to happen?

Statusbar stays in place

What does actually happen?

Content slides up under status bar

Information

Watching a video in an iOS Webview, defaults to fullscreen, if you rotate your phone to landscape, then back to portrait and exit the video, the status bar is then off

our settings is

<preference name="StatusBarOverlaysWebView" value="false" />

And we only allow portrait orientation, but watching videos is done in a native iOS player by default, which allows rotating.

As the backbutton now is "behind" the status bar, my workaround has been setting the eventlistener on statusTap and then doing

window.StatusBar.overlaysWebView(true);
window.StatusBar.overlaysWebView(false);

I don't know exactly what causing this, but it seems like the resetup of the statusbar isn't called in this situation.

Command or Code

see above

Environment, Platform, Device

iOS <preference name="StatusBarOverlaysWebView" value="false" /> only allow portrait orientation

Version information

Newest Cordova, Cordova IOS, Cordova ionic WKWebview and newest Statusbar Plugin

Checklist

  • [ X] I searched for existing GitHub issues
  • [ X] I updated all Cordova tooling to most recent version
  • [ X] I included all the necessary information above

sithwarrior avatar Oct 20 '23 08:10 sithwarrior

I guess I have the same issue. My app is also portrait only, except when playing a video where the player allows both portrait and landscape.

If I open a video in portrait, and stays in portrait, then no problem.

If I open a video in portrait, go to landscape, then close the video, then no problem.

The issue arises when opening the video in portrait, going to landscape, then portrait again, then closing the video. The app is now on top of the status bar, and simply calling window.StatusBar.overlaysWebView(false); does not help. As @sithwarrior mentioned, you have to change the overlay to true then false:

window.StatusBar.overlaysWebView(true);
window.StatusBar.overlaysWebView(false);

I call this in the webkitendfullscreen event.

Heshyo avatar Jan 23 '24 14:01 Heshyo

Another way to make the problem appear:

open a video in portrait, then close the player by swiping it down.

The app is now on top of the status bar. The issue with this one is that the webkitendfullscreen event is never called and I don't notice that I must call overlaysWebView.

Heshyo avatar Jan 24 '24 02:01 Heshyo

can you provide a sample app that reproduces the issue?

jcesarmobile avatar Jan 28 '24 11:01 jcesarmobile

@jcesarmobile @sithwarrior I'm away from a Mac for some time, but it'll try to provide a sample app in a week or two.

Heshyo avatar Jan 28 '24 14:01 Heshyo