iOs的定位和高度都比它小

时间:2016-04-11 18:04:50

标签: ios css3 webview ionic-framework viewport

我在iOs 真正的设备上运行我的离子应用程序时遇到问题(在iPhone 4和iPad第4代测试)。所有这些都是在Android手机,平板电脑和iOs仿真器上完美的。

(这是我使用的方向插件:cordova-plugin-screen-orientation)

我的应用程序在纵向模式下被锁定,通过单击按钮,我会转到另一个锁定横向方向的页面。 (到目前为止一切顺利) 当我单击后退按钮返回纵向页面时,它会旋转并处于纵向模式,但窗口宽度和高度完全混乱。

我尝试过在其他主题中找到的许多配置,但它们都不适用于我:

<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" /> <!-- Works on android -->
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi, user-scalable=no" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

我还注意到肖像页面的初始宽度和高度是:

[Log] Window height = 480 width = 320 

在横向页面上:

[Log 2] Window height = 320 width = 480

最后,当我回到肖像页面时,我有这个:

[Log 3] Window height = 640 width = 160

这两种方法的日志相同:

window.innerHeight / document.documentElement.clientHeight
window.innerWidth /  document.documentElement.clientWidth

此主题与此相关但无法解答:stackoverflow.com/questions/18835784/iphones-orientation-change-back-to-portrait-breaks-sites-zoom

页面截屏:

Page 1 in portrait mode

Page 1 in portrait mode but with width problems

非常感谢,提前!

1 个答案:

答案 0 :(得分:2)

我终于设法解决了这个问题。这是我的修复:

在XCode中打开iOs项目。

比编辑MainViewController.m

中的以下功能
    - (void)webViewDidFinishLoad:(UIWebView*)theWebView
    {
    // Black base color for background matches the native apps
    theWebView.backgroundColor = [UIColor blackColor];
    theWebView.scalesPageToFit = true;
    theWebView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

    return [super webViewDidFinishLoad:theWebView];
    }

建立并享受!