2015-05-20 12:06:51 +08:00
# Cordova Screen Orientation Plugin
2014-05-07 06:02:25 +08:00
2015-05-20 12:06:51 +08:00
Cordova plugin to set/lock the screen orientation in a common way for iOS, Android, WP8 and Blackberry 10. This plugin is based on an early version of [Screen Orientation API ](http://www.w3.org/TR/screen-orientation/ ) so the api does not currently match the current spec.
2014-07-27 11:51:20 +08:00
The plugin adds the following to the screen object:
__lockOrientation(ORIENTATION_STRING)__
lock the device orientation
__unlockOrientation()__
unlock the orientation
__orientation__
current orientation (ORIENTATION_STRING)
2014-05-07 06:02:25 +08:00
2015-05-20 12:06:51 +08:00
## Install
cordova < 4
2014-07-11 07:26:09 +08:00
2014-07-13 07:34:21 +08:00
cordova plugin add net.yoik.cordova.plugins.screenorientation
2014-07-11 07:26:09 +08:00
2015-05-20 12:06:51 +08:00
cordova > 4
2014-07-11 07:26:09 +08:00
2015-05-20 12:06:51 +08:00
cordova plugin add cordova-plugin-screen-orientation
2014-05-07 06:02:25 +08:00
2015-05-20 12:06:51 +08:00
## Supported Orientations
2014-07-13 07:34:21 +08:00
__portrait-primary__
The orientation is in the primary portrait mode.
__portrait-secondary__
The orientation is in the secondary portrait mode.
__landscape-primary__
The orientation is in the primary landscape mode.
__landscape-secondary__
The orientation is in the secondary landscape mode.
2014-07-13 14:50:16 +08:00
__portrait__
The orientation is either portrait-primary or portrait-secondary (sensor).
__landscape__
The orientation is either landscape-primary or landscape-secondary (sensor).
2015-05-20 12:06:51 +08:00
## Usage
2014-07-13 07:34:21 +08:00
2014-07-27 11:51:20 +08:00
// set to either landscape
2014-07-13 07:34:21 +08:00
screen.lockOrientation('landscape');
2014-07-27 11:51:20 +08:00
// allow user rotate
2014-07-13 07:34:21 +08:00
screen.unlockOrientation();
2014-07-27 11:51:20 +08:00
// access current orientation
console.log('Orientation is ' + screen.orientation);
2015-05-20 12:06:51 +08:00
## Events
2014-07-13 07:34:21 +08:00
Both android and iOS will fire the orientationchange event on the window object.
For this version of the plugin use the window object if you require notification.
2014-07-27 11:51:20 +08:00
For this plugin to follow the full API events should be fired on the screen object.
iOS and BB10 do not currently support events on the _screen_ object so custom event
handling will need to be added (Suggestions welcome!).
2014-07-13 07:34:21 +08:00
2015-05-20 12:06:51 +08:00
## Android Notes
2014-07-13 07:34:21 +08:00
2014-07-27 11:51:20 +08:00
The __screen.orientation__ property will not update when the phone is [rotated 180 degrees ](http://www.quirksmode.org/dom/events/orientationchange.html ).
2014-07-13 07:34:21 +08:00
2015-05-20 12:06:51 +08:00
## iOS Notes
2014-07-11 07:26:09 +08:00
2014-05-07 06:02:25 +08:00
The iOS version is a combination of the cordova JS callback _window.shouldRotateToOrientation_ and the workaround to recheck the orientation as implemented in https://github.com/Adlotto/cordova-plugin-recheck-screen-orientation.
2014-07-13 07:34:21 +08:00
__If you have a custom implementation of the _window.shouldRotateToOrientation_ it will have to be removed for the plugin to function as expected.__
2014-05-07 06:02:25 +08:00
2015-05-20 12:06:51 +08:00
#### iOS6
2014-07-11 07:26:09 +08:00
There has been a few cases where the rotation does not change the width of the viewport
2015-05-20 12:06:51 +08:00
Issue [#1 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/issues/1 ) @dokterbob
2014-07-11 07:26:09 +08:00
>It seems to be related to having width=device-width, height=device-height in the meta viewport (which is part of the boilerplate phonegap/cordova app). It can be solved by updating the viewport with width=device-height, height=device-width or simply removing width and height altogether.
2015-05-20 12:06:51 +08:00
#### iOS8
2014-09-03 12:14:10 +08:00
2014-09-18 07:42:23 +08:00
Versions prior to 1.2.0 will cause an application crash in iOS8 due to a change in presentViewController timing.
2014-05-07 06:02:25 +08:00
2015-05-20 12:06:51 +08:00
## BB10 Notes
2014-07-27 11:51:20 +08:00
Wraps the com.blackberry.app plugin functions, auto installed as a dependancy.
2015-05-20 12:06:51 +08:00
## WP8 Notes
2015-05-14 12:04:03 +08:00
Windows phone does not support specification or primary and secondary orientations. If called with a specific orientation the plugin will just apply the landscape or portait orientation.
2015-05-20 12:06:51 +08:00
# Changelog
## 1.3.5-6
* Plugin added to npm
2014-09-18 07:42:23 +08:00
2015-05-20 12:06:51 +08:00
## 1.3.4
2015-05-14 12:04:03 +08:00
* Readme update
2015-05-20 12:06:51 +08:00
## 1.3.3
* [#53 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/pull/53 ) WP8 Support
2015-05-14 12:04:03 +08:00
2015-05-20 12:06:51 +08:00
## 1.3.2
2014-12-02 04:47:24 +08:00
2015-05-20 12:06:51 +08:00
* [#33 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/issues/33 ) iOS8 Delay Block
2014-12-02 04:47:24 +08:00
2015-05-20 12:06:51 +08:00
## 1.3.0
2014-09-18 07:42:23 +08:00
2015-05-20 12:06:51 +08:00
* [#23 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/issues/23 ) iOS8 flicker
2014-09-18 07:42:23 +08:00
2015-05-20 12:06:51 +08:00
## 1.2.0-1.2.1
2014-09-18 07:42:23 +08:00
2015-05-20 12:06:51 +08:00
* [#19 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/issues/19 ) iOS8 Crash
2014-09-18 07:42:23 +08:00
2014-07-13 07:34:21 +08:00
Pull requests welcome.