我有一个通过服务器加载的jQTouch应用程序,所以我需要做的就是在PhoneGap中全屏显示一个faux-Native应用程序的网页。不幸的是,我在PhoneGap中尝试过的每个解决方案都有一个问题:它认为屏幕尺寸比它高。这导致固定在底部的标签栏永远在屏幕外,因此无法使用。您应该可以使用下面的代码重新创建它,并转到iTabbar在线演示。有关如何纠正这个问题的任何想法?
对于后台,在iOS Safari中访问应用页面工作正常,以及将页面保存到主屏幕。在这两种情况下,webview都停在屏幕底部,因此可以看到tabbar。另外,我正在使用build.phonegap.com进行编译(我不是在本地编译)
我尝试了两种方法:
加载childBrowser插件并调用页面(通过选项隐藏导航栏)
设置以下config.xml参数以防止phonegap切换到Safari,然后只加载链接(因为它在我的脑海里更干净。我已经粘贴了我的index.html和config.xml)
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>
答案 0 :(得分:0)
感谢PhoneGap支持让我指向正确的方向。问题发生在fullscreen.js
:
window.navigator.standalone
是一个二进制只读参数,fullscreen.js用它来确定webapp是从主屏幕还是在浏览器中启动的。如果它是假的(即在webbrowser中)它添加60px以允许地址栏。如果它是真的(即从主屏幕启动)没有像素被添加到高度。
所以,当我从phonegap中启动时,window.navigator.standalone是假的,即使它应该是真的。这导致60px被错误地添加。现在我刚刚把它硬编码到true
。