我正在为移动设备创建一个 HTML5 网络应用程序,并被要求隐藏浏览器导航栏(后退和前进按钮)(此处为错字)。我怎样才能做到这一点?
我想我应该能够使用 Phone Gap 来实现这一点。但我想知道“普通”网络应用程序是否有可能隐藏浏览器栏?如果我将网站/应用程序固定到主屏幕,我认为这可能吗?
iPhone 有http://ajaxian.com/archives/iphone-full-screen-webapps,但至少 Andriod 呢?
我正在为移动设备创建一个 HTML5 网络应用程序,并被要求隐藏浏览器导航栏(后退和前进按钮)(此处为错字)。我怎样才能做到这一点?
我想我应该能够使用 Phone Gap 来实现这一点。但我想知道“普通”网络应用程序是否有可能隐藏浏览器栏?如果我将网站/应用程序固定到主屏幕,我认为这可能吗?
iPhone 有http://ajaxian.com/archives/iphone-full-screen-webapps,但至少 Andriod 呢?
我知道这个问题在这一点上有点过时了,所以这里有一个更新:
在适用于 iOS 7+ 的 Safari 上,这个解决方案很棒:
<meta name="viewport" content="minimal-ui, width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
minimum-ui 属性使浏览器隐藏所有按钮,同时保持任务栏完好无损。
我还没有为android测试过这个。
如果您可以在您的网络应用程序中使用JQuery,那么我建议您使用NiceScroll插件。
它可用于移动和桌面浏览器,并将隐藏浏览器的滚动条。如果您的代码超出了浏览器的视口高度,它将创建一个自定义滚动条,如果不使用该滚动条会淡出。
这是它的演示。
编辑:
根据您的更新,我想补充一点,我实际上不是本地移动网络应用程序开发人员,但在搜索您的问题时,我发现了一些可以帮助您进一步引领方向的问题:
这些教程:
您可以将此应用程序用于 Android:Kiosk Web/Html Browser,它会在您的 sd 卡中创建一个文件夹,您可以在其中放置 html,以全屏“沉浸式模式”显示。
<script> function requestFullScreen() {
var el = document.body;
// Supports most browsers and their versions.
var requestMethod = el.requestFullScreen || el.webkitRequestFullScreen
|| el.mozRequestFullScreen || el.msRequestFullScreen;
if (requestMethod) {
// Native full screen.
requestMethod.call(el);
} else if (typeof window.ActiveXObject !== "undefined") {
// Older IE.
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
</script>
<a href="#" onClick="requestFullScreen();"> click </a>
编辑
新答案
自从提出这个问题以来,情况发生了很大变化。现在对滚动、固定位置有了很好的原生支持,而且大多数操作系统的浏览器栏比当时小了很多。既然是这种情况,我建议不要像大多数网站和答案所推荐的那样诉诸滚动黑客。遵守操作系统的规则将提高您的 web 应用程序的稳定性、可用性和未来兼容性。
旧答案
当有人将 iPhone 作为 web 应用程序保存到主屏幕时,它是可能的。如果您添加正确的元标记,这将起作用。
对于标准浏览器模式,您必须回退到黑客攻击有点棘手。基本上,当您滚动时地址栏会消失(对于 Iphone,大多数情况下对于 android)。你可以用 javascript 伪造它。Mobile tuts 也有一篇很好的文章:http: //mobile.tutsplus.com/tutorials/mobile-web-apps/remove-address-bar/,但这仅适用于内容较长的屏幕分辨率。
最新的 Chrome for Android 测试版中有这样的功能: https ://developers.google.com/chrome/mobile/docs/installtohomescreen