手机浏览器全屏模式


申明:文章部分内容是我在各个网站上以及自己做项目时的总结,出处我已经不记得了。如果遇到版权问题请联系我,我会及时删掉。我是一个刚刚做前端1个多月的初学者,如果哪里有错误,还请各位大神们不吝赐教。欢迎吐槽与分享。

有时候由于项目需要,我们希望我们做的网页在手机浏览器上可以像APP一样,在浏览器上全屏显示,经过一段时间的开发及测试发现,可以用<meta>就能解决。

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1.0,user-scalable=no,minimal-ui"/>

关键在于最后的minimal-ui,但这个在ios7上是支持的,在ios8上苹果取消了,因为认为这是不友好的操作。

在分享一些常用的浏览器

<!-- UC浏览器全屏 -->
<meta name="full-screen" content="yes">
<!-- uc强制竖屏 -->
<meta name="screen-orientation" content="portrait">

<!-- UC应用模式 -->
<meta name="browsermode" content="application">


<!-- QQ浏览器全屏 -->
<meta name="x5-fullscreen" content="true">
<!-- QQ强制竖屏 -->
<meta name="x5-orientation" content="portrait">

<!-- QQ应用模式 -->
<meta name="x5-page-mode" content="app">

以上是我测试过的,下面是在网上看到的其他老的浏览器,但没有机器所以没有测试过。分享出来给需要的朋友。
<!-- 是针对一些老的不识别viewport的浏览器,列如黑莓 -->

<meta name="HandheldFriendly" content="true">
<!-- 微软的老式浏览器 -->

<meta name="MobileOptimized" content="320">

 

在分享一段JS来控制布局的code把,我试过,针对部分浏览器也是有用的,不过对我的项目而言,好像整个布局会整体偏下,应该改改就可以了。

function hideAddressBar_ios(){
            if(document.documentElement.scrollHeight <= document.documentElement.clientHeight) {
                bodyTag = document.getElementsByTagName('body')[0];
                bodyTag.style.height = document.documentElement.clientWidth / screen.width * screen.height + 'px';
            }
            setTimeout(function(){
                window.scrollTo(0, 1);
            }, 100);
        };
        function hideAddressBar_android(){
            var n = navigator.userAgent;
            if(n.match(/UCBrowser/i)){
                //uc浏览器
                hideAddressBar_ios();
                return false;
            }
            var self = document.getElementsByTagName('body')[0];
            if (self.requestFullscreen) {
                self.requestFullscreen();
            } else if (self.mozRequestFullScreen) {
                self.mozRequestFullScreen();
            } else if (self.webkitRequestFullScreen) {
                self.webkitRequestFullScreen();
            }
        };
        window.addEventListener("load",function(){
            navigator.userAgent.match(/Android/i) ? hideAddressBar_android() : hideAddressBar_ios();
        });

很遗憾,以上code并不能解决小米自带的浏览器以及safri浏览器,他们我目前还没找出可以让他们全屏的办法。有可能是浏览器的限制,如果亲们发现解决方案,欢迎分享。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM