apache / cordova-plugin-screen-orientation

Apache Cordova Screen Orientation Plugin
https://cordova.apache.org/
Apache License 2.0
219 stars 226 forks source link

screenOrientation.unlock() doesn't respect the current orientation on iOS devices #38

Open jonastg opened 5 years ago

jonastg commented 5 years ago

Expected behaviour

The device should keep the current screen orientation — the screen was previously locked — after the screen is unlocked.

Actual behaviour

The screen rotates to the previous orientation when the screen was locked.

Steps to reproduce it

It fails on

It works on

OS versions tested

Code example

// player is instance of plyr.io
this.player.on('enterfullscreen', () => {
  this.statusBar.hide();
  this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.LANDSCAPE);
});
this.player.on('exitfullscreen', () => {
  this.screenOrientation.unlock();
  this.statusBar.show();
});

Build system

Android

Ionic:

   ionic (Ionic CLI)  : 4.0.5
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : android 7.1.2

System:

   Android SDK Tools : 26.1.1
   NodeJS            : v8.11.3
   npm               : 6.4.1
   OS                : Linux 4.4

iOS

Ionic:

   ionic (Ionic CLI)  : 4.2.1
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.2, cordova-plugin-ionic-webview 1.2.1, (and 16 other plugins)

System:

   ios-deploy : 2.0.0
   ios-sim    : 7.0.0
   NodeJS     : v6.10.1
   npm        : 3.10.10
   OS         : macOS High Sierra
   Xcode      : Xcode 10.0 Build version 10A255
janpio commented 5 years ago

Hm, I think you are using "locked" here in two different meanings - one for this plugin and one for locking the device. You might want to update and clarify that ;) (maybe just add the method calls to the "Steps to reproduce it" list)

jonastg commented 5 years ago

Thank you for your feedback! I mean about blocking the screen orientation. I have updated expected behaviour description and added a code example.

jonastg commented 5 years ago

The issue describes same bug that jira ticket, it would be great if any of the available PRs that fix the problem is merged.

janpio commented 5 years ago

Feel free to point out the best PR (here) and document how you tested and confirmed its correctness (in the PR comments). Thanks.

humblecoder commented 5 years ago

Not to hijack the issue, but it's simply not working for me. On app mount (using Vuetify), I set it to portrait and lock it. However it simply hangs the initial UI load. If I place it later, say on the "Home Page" after a successful login, the page loads fine, but no locking ever occurs. Please advise.

janpio commented 5 years ago

You just did hijack this issue @humblecoder. Please create a new issue with your problem and we will see if we can help you. (I will hide your comment and this reponse later.)

jonastg commented 5 years ago

I've tried the valid PR #31 but it doesn't work as expected. See comment https://github.com/apache/cordova-plugin-screen-orientation/pull/31#issuecomment-455197262.

RHinderiks commented 5 years ago

Any news on this issue ?

Anuj-logiciel commented 5 years ago

@jonastg @janpio @humblecoder @RHinderiks @infil00p - Can You guys once try by installing plugin from here - https://github.com/Anuj-logiciel/cordova-plugin-screen-orientation

ozgeekemen commented 4 years ago

I correct the problem like that, https://github.com/ozgeekemen/cordova-plugin-screen-orientation/commit/e53bf7416a7e40f5658e5b50e2ac05476dd07429

RiccardoFeliciotti94 commented 4 years ago

Comment line 76 of CDVOrientation.m file It works for me!

phal0r commented 3 years ago

Hi guys,

2 1/2 years later and the bug is still present. Is this plugin dead or what needs to be done to get this fixed and a consistent behaviour?