应用程序屏幕比Android和WP上的视图大

时间:2016-05-25 15:26:45

标签: android cordova windows-phone phonegap-build phonegap-desktop-app

我正在使用Phonegap桌面应用程序创建一个应用程序,有时使用Phonegap Build,我发现我的网站与我的显示器一样大。

问题:不同的设备有一个状态栏(时钟,电池状态等),例如我的Nexus甚至还有一个带有控制按钮的底栏,显示在我的应用程序上。我的(使用css位置:固定)导航栏在这些设备本地栏下滚动。

知道如何拒绝或减去这些酒吧吗?如果我有 NO costum样式或样式库,我甚至可以看到这个。

HTML

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="msapplication-tap-highlight" content="no" />

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

    <title>Streetreporter</title>
    <!-- jQuery library -->
    <script src="libs/jQuery/jquery-1.12.4.js" type="text/javascript"></script>
    <script type="text/javascript" src="cordova.js"></script>
  </head>
  <body >        
      TO DO content  
    <script type="text/javascript" src="js/index.js"></script>
  </body>
</html>

CONFIG.xml ## shortend

<?xml version="1.0" encoding="UTF-8"?>

<!-- config.xml reference: https://build.phonegap.com/docs/config-xml -->
<widget xmlns     = "http://www.w3.org/ns/widgets"
        xmlns:gap = "http://phonegap.com/ns/1.0"
        id        = "app.streetreporter"
        version   = "0.1.0">

    <name>Streetreporter+Camera API Test</name>

    <description>
        Hello World sample application that responds to the deviceready event.
    </description>

    <author href="http://phonegap.com" email="support@phonegap.com">
        PhoneGap Team
    </author>
    <content src="index.html"/>
    <preference name="permissions"                value="none"/>

    <preference name="orientation"                value="default" />        
    <preference name="target-device"              value="universal" />     
    <preference name="fullscreen"                 value="true" />          
    <preference name="webviewbounce"              value="true" />          
    <preference name="prerendered-icon"           value="true" />       
    <preference name="stay-in-webview"            value="true" />        
    <preference name="ios-statusbarstyle"         value="black-opaque" />   
    <preference name="detect-data-types"          value="true" />         
    <preference name="exit-on-suspend"            value="false" />        
    <preference name="show-splash-screen-spinner" value="true" />          
    <preference name="auto-hide-splash-screen"    value="true" />          
    <preference name="disable-cursor"             value="false" />          
    <preference name="android-installLocation"    value="auto" />           

</widget>

2 个答案:

答案 0 :(得分:2)

要避免此问题,请勿使用全屏模式:

<preference name="fullscreen" value="false" />

答案 1 :(得分:2)

首先,我没有遇到类似的事情,这可能只是关于nexus?

似乎问题只是视口的高度,在视口配置中;

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

height=viewport-height配置,我通常不使用height参数,问题可能是,尝试删除并查看是否有任何更改。

此外,如果这不能解决您的问题,并且您想要在屏幕的最底部或顶部放置固定导航,则可能会执行以下操作。

将您的内容带入运营商div;

<div id="carrier">
  <!--your code-->
</div>

在Javascript中;

window.onload = function(){
  document.getElementById("carrier").height = window.innerHeight;
}

这里我们将载体div的高度设置为显示屏的innerHeight,记住innerHeight和outerHeight之间存在差异因此,这可能是你的导航在你的外层屏幕视图导航下的问题关系。

enter image description here

同样在CSS中,

#carrier { position:relative; overflow:scroll; }
.yourNavElem { position:absolute; bottom:0px; left:0px;}

并将导航元素的绝对位置用于载体元素。

我不确定它是否能解决问题,但是请让我更新。