我正在使用PhoneGap为Android,iOS和Windows Phone开发应用程序。 我有一个带图表的页面,如果用户以横向方向旋转设备,我想全屏显示。
问题是必须在纵向方向上阻止整个应用程序,因此景观必须仅在此图形页面上可用。
我有两种可能性:
1)在整个应用程序中授权纵向/横向。 如果用户位于除图表之外的任何其他页面上,并且如果他将设备置于横向,则取消旋转并保持纵向模式。
我想我必须有办法在这些事件之前捕捉到一个事件:
window.addEventListener("orientationchange", orientationChange, false);
window.addEventListener("resize", resize, false);
2)纵向阻止整个应用程序。 如果用户在图形页面上,添加一个按钮,允许在横向上旋转此页面以显示图形,然后返回到纵向模式。
我发现了这一点,但仅对Android有用:set screen orientation
那么,有没有办法做到这些可能性之一?
由于
答案 0 :(得分:1)
iOS解决方案:
在您的javascript文件中输入此功能
function shouldRotateToOrientation (rotation) {
switch (rotation) {
case 0:
if(condition){
return true;
}else{
return false;}
case 90:
return false;
case -90:
return false;
case 180:
return false;
}
}
此函数覆盖了cordova lib中的内置函数。
答案 1 :(得分:1)
window
.matchMedia('(orientation: portrait)')
.addListener(function (m) {
console.log('a');
});
window.addEventListener('resize', function () {
console.log('b');
});
window.addEventListener('orientationchange', function () {
console.log('c');
});
// https://github.com/gajus/orientationchangeend
viewport.on('orientationchangeend', function () {
console.log('c');
});
这些事件将按字母顺序触发。