0

我有一个通过服务器加载的 jQTouch 应用程序,所以我需要做的就是在 PhoneGap 中全屏显示网页以获取一个人造原生应用程序。不幸的是,我在 PhoneGap 中尝试过的每个解决方案都有一个问题:它认为屏幕尺寸比实际尺寸大。这导致固定在底部的选项卡栏永久离开屏幕,因此无法使用。您应该能够使用我下面的代码重新创建它并访问 iTabbar 在线演示。关于如何纠正这个问题的任何想法?

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

我试过两种方法:

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

  2. 设置以下 config.xml 参数以防止 phonegap 切换到 Safari,然后只需加载链接(最好是因为它在我看来更干净。我在下面粘贴了我的 index.html 和 config.xml)

config.xml 参数的详细信息:

在 WebView 中打开所有链接

停留在 webview 中,值为 true 或 false

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

  • 如果设置为 true,所有链接(即使目标设置为空白)都将在应用程序的 webview 中打开

  • 仅当您希望服务器中的页面接管整个应用程序时才使用此首选项

  • 默认为假

(来源: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>
4

1 回答 1

0

感谢 PhoneGap 支持为我指明了正确的方向。问题出在fullscreen.js

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

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

于 2012-09-21T21:45:26.540 回答