Phonegap网络视图认为设备屏幕比它高 - 导致屏幕外标签栏

时间:2012-09-08 21:36:32

标签: ios cordova jqtouch phonegap-plugins

我有一个通过服务器加载的jQTouch应用程序,所以我需要做的就是在PhoneGap中全屏显示一个faux-Native应用程序的网页。不幸的是,我在PhoneGap中尝试过的每个解决方案都有一个问题:它认为屏幕尺寸比它高。这导致固定在底部的标签栏永远在屏幕外,因此无法使用。您应该可以使用下面的代码重新创建它,并转到iTabbar在线演示。有关如何纠正这个问题的任何想法?

对于后台,在iOS Safari中访问应用页面工作正常,以及将页面保存到主屏幕。在这两种情况下,webview都停在屏幕底部,因此可以看到tabbar。另外,我正在使用build.phonegap.com进行编译(我不是在本地编译)

我尝试了两种方法:

  1. 加载childBrowser插件并调用页面(通过选项隐藏导航栏)

  2. 设置以下config.xml参数以防止phonegap切换到Safari,然后只加载链接(因为它在我的脑海里更干净。我已经粘贴了我的index.html和config.xml)

  3. config.xml参数的详细信息:

      

    打开WebView中的所有链接

         

    使用值true或false保留在webview中

         
        
    • 示例:<preference name="stay-in-webview" value="true" />

    •   
    • 如果设置为true,则所有链接(即使目标设置为空白)都将在应用的网页视图中打开

    •   
    • 如果您希望服务器中的网页接管整个应用,则仅使用此偏好设置

    •   
    • 默认为false

    •   

    (资料来源:https://build.phonegap.com/docs/config-xml

    我的index.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    
    <meta http-equiv="Content-type" content="text/html;charset=utf-8">
    
    <title>MyApp</title>
    
    <script src="phonegap.js"></script>
    
    </head>
    <body>
    <p><a href="http://www.itabbar.com/itabbar/demo.html#home">Launch iTabbar</a></p>
    </body>
    </html>
    

    我的config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <widget xmlns = "http://www.w3.org/ns/widgets"
        xmlns:gap = "http://phonegap.com/ns/1.0"
        id        = "com.phonegap.myapp"
        versionCode="10" 
        version   = "1.0.0">
    
    <!-- versionCode is optional and Android only -->
    
    <name>MyApp</name>
    
    <description>
        My app is...
    </description>
    
    <author href="https://myurl.com" email="me@myurl.com">
        me
    </author>
    
    <preference name="stay-in-webview" value="true" />
    
    </widget>
    

1 个答案:

答案 0 :(得分:0)

感谢PhoneGap支持让我指向正确的方向。问题发生在fullscreen.js

window.navigator.standalone是一个二进制只读参数,fullscreen.js用它来确定webapp是从主屏幕还是在浏览器中启动的。如果它是假的(即在webbrowser中)它添加60px以允许地址栏。如果它是真的(即从主屏幕启动)没有像素被添加到高度。

所以,当我从phonegap中启动时,window.navigator.standalone是假的,即使它应该是真的。这导致60px被错误地添加。现在我刚刚把它硬编码到true