Phonegap 页面旋转错误,横向显示为纵向

Posted

技术标签:

【中文标题】Phonegap 页面旋转错误,横向显示为纵向【英文标题】:Phonegap page has wrong rotation, shows as portrait in landscape mode 【发布时间】:2012-06-12 12:29:14 【问题描述】:

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

这是我看到的:

在我的...-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);

【问题讨论】:

当您将应用旋转为纵向然后再旋转为横向时会发生什么? 检查根控制器 - shouldAutorotateToInterfaceOrientation,如果它允许根视图旋转? @Tom 就是这样!您可以将其发布为答案吗?所以我可以给你一些声誉。非常感谢! 【参考方案1】:

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

例如return true 中的Classes/MainViewController.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

    // Return YES for supported orientations
    //return (interfaceOrientation == UIInterfaceOrientationPortrait);
    return true;

【讨论】:

【参考方案2】:

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

我已将其替换为以下行:

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

...与下面的行,并纠正方向:

self.window.rootViewController = self.viewController;

【讨论】:

【参考方案3】:

尝试使用元标记

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

更多信息请阅读this page

【讨论】:

我有一个带有width=device-width 的视口。我将其添加到我的问题中。

以上是关于Phonegap 页面旋转错误,横向显示为纵向的主要内容,如果未能解决你的问题,请参考以下文章

如何将视图从纵向模式旋转到横向模式

当设备仅从纵向旋转到横向时,网页上的全屏图像被挤压

从纵向旋转到横向时,iPad 布局会放大

在 Phonegap 中,HTML 不会随着应用旋转而调整大小

从纵向模式旋转到横向模式时不调整子视图

横向和纵向的分隔 xib