2016-05-06 02:46:35 +08:00
<!--
# license: Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-->
2015-05-20 12:06:51 +08:00
# Cordova Screen Orientation Plugin
2014-05-07 06:02:25 +08:00
2016-10-18 07:27:43 +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 [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
2015-12-09 01:14:57 +08:00
The plugin adds the following to the screen object (`window.screen`):
2014-07-27 11:51:20 +08:00
2015-12-09 01:14:57 +08:00
```js
// lock the device orientation
.lockOrientation('portrait')
2014-07-27 11:51:20 +08:00
2015-12-09 01:14:57 +08:00
// unlock the orientation
.unlockOrientation()
2014-07-27 11:51:20 +08:00
2015-12-09 01:14:57 +08:00
// current orientation
.orientation
```
2014-05-07 06:02:25 +08:00
2015-05-20 12:06:51 +08:00
## Install
2014-07-11 07:26:09 +08:00
2015-12-09 01:14:57 +08:00
```bash
2015-05-20 12:06:51 +08:00
cordova plugin add cordova-plugin-screen-orientation
2015-12-09 01:14:57 +08:00
```
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
2015-12-09 01:14:57 +08:00
#### portrait-primary
> The orientation is in the primary portrait mode.
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
#### portrait-secondary
> The orientation is in the secondary portrait mode.
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
#### landscape-primary
> The orientation is in the primary landscape mode.
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
#### landscape-secondary
> The orientation is in the secondary landscape mode.
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
#### portrait
> The orientation is either portrait-primary or portrait-secondary (sensor).
2014-07-13 14:50:16 +08:00
2015-12-09 01:14:57 +08:00
#### landscape
> The orientation is either landscape-primary or landscape-secondary (sensor).
2014-07-13 14:50:16 +08:00
2016-08-31 08:11:10 +08:00
#### any
2016-10-18 07:25:16 +08:00
> orientation is unlocked - all orientations are supported.
2016-08-31 08:11:10 +08:00
2015-05-20 12:06:51 +08:00
## Usage
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
```js
// set to either landscape
screen.lockOrientation('landscape');
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
// allow user rotate
screen.unlockOrientation();
2014-07-13 07:34:21 +08:00
2015-12-09 01:14:57 +08:00
// access current orientation
console.log('Orientation is ' + screen.orientation);
```
2014-07-27 11:51:20 +08:00
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.
2015-07-20 20:37:27 +08:00
### Example usage
2015-12-09 01:14:57 +08:00
```js
window.addEventListener("orientationchange", function(){
console.log(screen.orientation); // e.g. portrait
});
```
2015-07-20 20:37:27 +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
## 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
# Changelog
2016-10-18 07:25:16 +08:00
## 2.0.0
2016-08-31 08:11:10 +08:00
* Common javascript for iOS, Android and Windows.
2016-05-23 06:40:35 +08:00
## 1.4.2
* [#101 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/pull/101 ) make iOS rotate as needed when lockOrientation is called
2016-03-04 18:08:51 +08:00
## 1.4.1
* [#89 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/pull/89 ) Fix for cordova >= 3.6.3
2015-08-10 07:57:07 +08:00
## 1.4.0
2015-08-08 00:12:10 +08:00
* Added Windows 8.1 Support
2015-08-10 07:57:07 +08:00
* [#54 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/pull/54 ) Background thread for ios
* [#64 ](https://github.com/gbenvenuti/cordova-plugin-screen-orientation/pull/64 ) Orientation naming bug fixed
* Add portrait upside down to iOS default orientations
2015-08-08 00:12:10 +08:00
2015-05-20 12:06:51 +08:00
## 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.