Phonegap页面旋转错误,在横向模式下显示为纵向

时间:2012-06-12 12:29:15

标签: html ipad cordova screen-orientation

我有一个(简单)网页打包在一个phonegap应用程序中。如果我启动应用程序,它将以纵向方向显示页面,并显示横向页面宽度。所以文本从左下到左开始。在右边,我有一个页面应该结束的空白。

这就是我所看到的:

enter image description here

支持的方向在我的...-Info.plist中左右横向显示:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationLandscapeRight</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
</array>

在我的iPad上,我锁定了屏幕旋转。启动图像在风景中显示正确。

该页面旨在适应固定大小的景观。这是我的视口:

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />

并且页面具有正确的横向宽度,但它已被转换。我可以上下滚动。应用程序启动后,ipad状态栏从顶部向左跳转。

更新

我只将目标设备更改为iPad,并允许定向到横向左侧,现在状态栏位于需要的顶部。页面仍然转向...我还尝试制作一个simple page version,它应该旋转那些无法正常工作的内容。

更新2

Classes/MainViewController.m我有:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

3 个答案:

答案 0 :(得分:4)

您可以检查根控制器 - shouldAutorotateToInterfaceOrientation,允许旋转某个方向。希望它有所帮助。

例如return true中的Classes/MainViewController.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    //return (interfaceOrientation == UIInterfaceOrientationPortrait);
    return true;
}

答案 1 :(得分:2)

Tom回复问题之后,我想我会为那些使用旧版XCode和iOS重建应用的人分享一个解决方案。我不记得我的旧版本,但我现在使用iOS 6.1的基础SDK在XCode 4.6.1上。我确定我以前使用的是iOS 5.x的Base SDK。

我已将其替换为以下行:

[self.window addSubview:self.viewController.view];

...使用下面的行,方向已更正:

self.window.rootViewController = self.viewController;

答案 2 :(得分:-1)

尝试使用元标记

<meta name="viewport" content="width=720,maximum-scale=1.0" />

以及更多阅读this page