mirror of
https://github.com/apache/cordova-plugin-screen-orientation.git
synced 2025-05-04 00:56:11 +08:00
parent
01c10dce27
commit
2c6b348f86
15
.gitignore
vendored
15
.gitignore
vendored
@ -12,18 +12,5 @@ Thumbs.db
|
|||||||
*.swp
|
*.swp
|
||||||
*.user
|
*.user
|
||||||
|
|
||||||
demo/hooks/
|
node_modules
|
||||||
demo/platforms/
|
|
||||||
demo/plugins/
|
|
||||||
/node_modules/
|
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
.*
|
.*
|
||||||
appveyor.yml
|
appveyor.yml
|
||||||
demo
|
|
||||||
tests
|
tests
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
<!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<widget id="com.cordova.screenorientationdemo" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
|
||||||
<name>ScreenOrientationDemo</name>
|
|
||||||
<description>
|
|
||||||
A sample Apache Cordova application that showcases the ScreenOrientation plugin.
|
|
||||||
</description>
|
|
||||||
<author email="dev@cordova.apache.org" href="http://cordova.io">
|
|
||||||
Apache Cordova Team
|
|
||||||
</author>
|
|
||||||
<content src="index.html" />
|
|
||||||
<access origin="*" />
|
|
||||||
<allow-intent href="http://*/*" />
|
|
||||||
<allow-intent href="https://*/*" />
|
|
||||||
<allow-intent href="tel:*" />
|
|
||||||
<allow-intent href="sms:*" />
|
|
||||||
<allow-intent href="mailto:*" />
|
|
||||||
<allow-intent href="geo:*" />
|
|
||||||
<platform name="android">
|
|
||||||
<allow-intent href="market:*" />
|
|
||||||
</platform>
|
|
||||||
<platform name="ios">
|
|
||||||
<allow-intent href="itms:*" />
|
|
||||||
<allow-intent href="itms-apps:*" />
|
|
||||||
</platform>
|
|
||||||
</widget>
|
|
@ -1,119 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
* {
|
|
||||||
-webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
-webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */
|
|
||||||
-webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */
|
|
||||||
-webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
|
|
||||||
background-color:#E4E4E4;
|
|
||||||
background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
|
|
||||||
background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
|
|
||||||
background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
|
|
||||||
background-image:-webkit-gradient(
|
|
||||||
linear,
|
|
||||||
left top,
|
|
||||||
left bottom,
|
|
||||||
color-stop(0, #A7A7A7),
|
|
||||||
color-stop(0.51, #E4E4E4)
|
|
||||||
);
|
|
||||||
background-attachment:fixed;
|
|
||||||
font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
|
|
||||||
font-size:12px;
|
|
||||||
height:100%;
|
|
||||||
margin:0px;
|
|
||||||
padding:0px;
|
|
||||||
padding-top:20px;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Portrait layout (default) */
|
|
||||||
.app {
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Landscape layout (with min-width) */
|
|
||||||
@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) {
|
|
||||||
.app {
|
|
||||||
background-position:left center;
|
|
||||||
padding:75px 0px 75px 170px; /* padding-top + padding-bottom + text area = image height */
|
|
||||||
margin:-90px 0px 0px -198px; /* offset vertical: half of image height */
|
|
||||||
/* offset horizontal: half of image width and text area width */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
border:solid 1px #946A4b;
|
|
||||||
background:#666;
|
|
||||||
color:#fff;
|
|
||||||
border-radius:4px;
|
|
||||||
-webkit-border-radius:4px;
|
|
||||||
font-size:12px;
|
|
||||||
|
|
||||||
margin:8px;
|
|
||||||
padding:6px;
|
|
||||||
width:128px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size:24px;
|
|
||||||
font-weight:normal;
|
|
||||||
margin:0px;
|
|
||||||
overflow:visible;
|
|
||||||
padding:0px;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.event {
|
|
||||||
border-radius:4px;
|
|
||||||
-webkit-border-radius:4px;
|
|
||||||
color:#FFFFFF;
|
|
||||||
font-size:12px;
|
|
||||||
margin:0px 30px;
|
|
||||||
padding:2px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.event.listening {
|
|
||||||
background-color:#333333;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.event.received {
|
|
||||||
background-color:#4B946A;
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade {
|
|
||||||
from { opacity: 1.0; }
|
|
||||||
50% { opacity: 0.4; }
|
|
||||||
to { opacity: 1.0; }
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes fade {
|
|
||||||
from { opacity: 1.0; }
|
|
||||||
50% { opacity: 0.4; }
|
|
||||||
to { opacity: 1.0; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.blink {
|
|
||||||
animation:fade 3000ms infinite;
|
|
||||||
-webkit-animation:fade 3000ms infinite;
|
|
||||||
}
|
|
Binary file not shown.
@ -1,68 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<!--
|
|
||||||
Customize this policy to fit your own app's needs. For more guidance, see:
|
|
||||||
https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
|
|
||||||
Some notes:
|
|
||||||
* gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
|
|
||||||
* https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
|
|
||||||
* Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
|
|
||||||
* Enable inline JS: add 'unsafe-inline' to default-src
|
|
||||||
-->
|
|
||||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<meta name="msapplication-tap-highlight" content="no">
|
|
||||||
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/index.css">
|
|
||||||
<title>Hello World</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="app">
|
|
||||||
<h1>Apache Cordova</h1>
|
|
||||||
<div id="deviceready" class="blink">
|
|
||||||
<p class="event listening">Connecting to Device</p>
|
|
||||||
<p class="event received">Device is Ready</p>
|
|
||||||
</div>
|
|
||||||
<h4>Set screen.orientation.lock();</h4>
|
|
||||||
<div>
|
|
||||||
<button id="btnPortrait">Portrait</button>
|
|
||||||
<button id="btnLandscape">Landscape</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button id="btnPortPrimary">Portrait - Primary</button>
|
|
||||||
<button id="btnLandPrimary">Landscape - Primary</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button id="btnAny">Unlock</button>
|
|
||||||
<button style="opacity:0;"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h4>Listen for events</h4>
|
|
||||||
<div>
|
|
||||||
<button id="btnOnchange">assign onchange</button>
|
|
||||||
<button id="btnAddEvtListener">addEventListener</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript" src="cordova.js"></script>
|
|
||||||
<script type="text/javascript" src="js/index.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,120 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
var app = {
|
|
||||||
// Application Constructor
|
|
||||||
initialize: function() {
|
|
||||||
this.bindEvents();
|
|
||||||
},
|
|
||||||
// Bind Event Listeners
|
|
||||||
//
|
|
||||||
// Bind any events that are required on startup. Common events are:
|
|
||||||
// 'load', 'deviceready', 'offline', and 'online'.
|
|
||||||
bindEvents: function() {
|
|
||||||
document.addEventListener('deviceready', this.onDeviceReady, false);
|
|
||||||
|
|
||||||
},
|
|
||||||
// deviceready Event Handler
|
|
||||||
//
|
|
||||||
// The scope of 'this' is the event. In order to call the 'receivedEvent'
|
|
||||||
// function, we must explicitly call 'app.receivedEvent(...);'
|
|
||||||
onDeviceReady: function() {
|
|
||||||
app.receivedEvent('deviceready');
|
|
||||||
btnPortrait.addEventListener("click", function() {
|
|
||||||
screen.orientation.lock('portrait').then(function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
}, function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
btnLandscape.addEventListener("click", function() {
|
|
||||||
screen.orientation.lock('landscape').then(function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
}, function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
btnPortPrimary.addEventListener("click", function() {
|
|
||||||
screen.orientation.lock('portrait-primary').then(function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
}, function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
btnLandPrimary.addEventListener("click", function() {
|
|
||||||
screen.orientation.lock('landscape-primary').then(function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
}, function(obj) {
|
|
||||||
console.log(obj);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
btnAny.addEventListener("click", function() {
|
|
||||||
screen.orientation.unlock();
|
|
||||||
});
|
|
||||||
|
|
||||||
var hasOnChange = false;
|
|
||||||
btnOnchange.addEventListener("click", function() {
|
|
||||||
if(hasOnChange) {
|
|
||||||
screen.orientation.onchange = undefined;
|
|
||||||
btnOnchange.innerText = "assign onchange";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
screen.orientation.onchange = myFunction1;
|
|
||||||
btnOnchange.innerText = "remove onchange";
|
|
||||||
}
|
|
||||||
hasOnChange = !hasOnChange;
|
|
||||||
});
|
|
||||||
|
|
||||||
var hasListener = false;
|
|
||||||
btnAddEvtListener.addEventListener("click", function() {
|
|
||||||
if(hasListener) {
|
|
||||||
screen.orientation.removeEventListener('change', myFunction2);
|
|
||||||
btnAddEvtListener.innerText = "addEventListener";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
screen.orientation.addEventListener('change', myFunction2);
|
|
||||||
btnAddEvtListener.innerText = "remEventListener";
|
|
||||||
}
|
|
||||||
hasListener = !hasListener;
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
// Update DOM on a Received Event
|
|
||||||
receivedEvent: function(id) {
|
|
||||||
var parentElement = document.getElementById(id);
|
|
||||||
var listeningElement = parentElement.querySelector('.listening');
|
|
||||||
var receivedElement = parentElement.querySelector('.received');
|
|
||||||
|
|
||||||
listeningElement.setAttribute('style', 'display:none;');
|
|
||||||
receivedElement.setAttribute('style', 'display:block;');
|
|
||||||
|
|
||||||
console.log('Received Event: ' + id);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function myFunction1() {
|
|
||||||
alert('This change listener uses screen.orientation.onchange');
|
|
||||||
}
|
|
||||||
|
|
||||||
function myFunction2() {
|
|
||||||
alert('This change listener uses screen.orientation.addEventListener');
|
|
||||||
}
|
|
||||||
|
|
||||||
app.initialize();
|
|
@ -11,7 +11,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npm run jshint",
|
"test": "npm run jshint",
|
||||||
"jshint": "node node_modules/jshint/bin/jshint www && node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint demo/www"
|
"jshint": "node node_modules/jshint/bin/jshint www && node node_modules/jshint/bin/jshint src"
|
||||||
},
|
},
|
||||||
"cordova": {
|
"cordova": {
|
||||||
"id": "cordova-plugin-screen-orientation",
|
"id": "cordova-plugin-screen-orientation",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user