GitHub user tisztamo opened a pull request:
https://github.com/apache/cordova-plugin-device-orientation/pull/16
Fixed invalid orientation reports on iOS related to landscape mode
The iOS plugin sets the locationManager.headingOrientation at the first
heading request but later it doesn't adapt to (screen) orientation changes
while the heading watch is running which causes invalid reports when the first
request happens in landscape orientation.
The fix is just removing this setting.
### Note 1
The documentation is not clear about the plugin behaviour at screen
orientation changes. The only place where it talks about this question is at
iOS quirks:
*"For iOS 4 devices and above, heading factors in the device's current
orientation, and does not reference its absolute position, for apps that
supports that orientation."*
This feature is not working correctly and being not compatible with other
platforms it just creates unneeded hassle for the user. At the time both
Android and iOS versions behave the same: nothing happens at orientation
change. This is how the native sensor APIs are working too so I think that
removing this is the correct fix of the problem.
I have removed this from the documentation too.
### Note 2
To correct the reported value based on screen orientation the user can do
something like (Do not use the % operator because of this:
http://wiki.ecmascript.org/doku.php?id=strawman:modulo_operator ):
var corrected = heading + window.orientation;
if (corrected < 0) {
corrected += 360;
} else if (corrected >= 360) {
corrected -= 360;
}
I haven't updated the documentation with this but I suggest to include this
info
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/tisztamo/cordova-plugin-device-orientation
fixiosorientation
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cordova-plugin-device-orientation/pull/16.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #16
----
commit 0623d82f8f5e298d98f7967d0b518bc11cc68c7a
Author: ko <[email protected]>
Date: 2014-10-23T13:52:32Z
Fixed invalid heading reports on iOS when the first request is initiated in
landscape orientation
commit 8adaa2367a22fedd4426e5575d2d5bb29d1f5399
Author: ko <[email protected]>
Date: 2014-10-23T14:30:20Z
Removed the ios orientation quirk from the documentation
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]