iphone的safari浏览器中实现全屏浏览的方法

所属分类: 软件编程 / IOS 阅读数: 920
收藏 0 赞 0 分享

正常情况下,当你用手机浏览器打开网页时,导航就停留在上面,这样实际展示的屏幕就变小了。
那能不能加载后,屏幕就自动全屏呢?这就是本文要讨论的。

Add to Home Screen

说到全屏不得不谈iPhone下的safari有一个特别且重要的功能就是“Add to Home Screen”。(就在Safari浏览器最下方,最中间的那个位置,点击选择即可)
这个功能类似于把网页地址作为一个超链接的方式放到手机桌面,并且可以直接访问。不过要注意的是每个链接都需要js进行一次特殊处理,那就是监听页面点击事件,如果是链接,则使用window.location = this.href;,这样页面就不会从当前的本地窗口跳到浏览器了。
那我们看看具体代码是怎么处理的。
其实只需要在HEAD代码里增加一些必要数据:

复制代码 代码如下:
<meta name="apple-mobile-web-app-capable" content="yes" /><!-- home screen app 全屏 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black" /><!-- 状态栏 -->
<!-- 还需要额外设置不同尺寸的启动图,默认不设置的话会自动去寻找根目录下的apple-touch-icon-precomposed.png -->
<!-- home screen app iPhone icon -->
<link rel="apple-touch-icon-precomposed" sizes="57x57" href="startup/apple-touch-icon-57x57-precomposed.png" />
<!-- home screen app iPad icon -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="startup/apple-touch-icon-72x72-precomposed.png" />
<!-- home screen app iPhone Retinas icon -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="startup/apple-touch-icon-114x114-precomposed.png" />
<!-- home screen app iPad Retinas icon -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="startup/apple-touch-icon-144x144-precomposed.png" />
<!-- iPhone5启动图 -->
<link rel="apple-touch-startup-image" href="startup/startup5.png" media="(device-height:568px)">
<!-- iPhone4启动图 -->
<link rel="apple-touch-startup-image" size="640x920" href="startup/startup.png" media="(device-height:480px)">

还想了解具体的设置可以参考苹果的官网说明:Configuring Web Applications
当然,对启动图,我推荐的做法是只使用一张114*114的图片即可。即:
复制代码 代码如下:
<link rel="apple-touch-icon-precomposed" href="startup/apple-touch-icon-114x114-precomposed.png" />

全屏js代码

复制代码 代码如下:
window.addEventListener('DOMContentLoaded', function() {
    var page = document.getElementById('page'),
        nav = window.navigator,
        ua = nav.userAgent,
        isFullScreen = nav.standalone;

    if (ua.indexOf('Android') !== -1) {
        // 56对应的是Android Browser导航栏的高度
        page.style.height = window.innerHeight + 56 + 'px';
    } else if (/iPhone|iPod|iPad/.test(ua)) {
        // 60对应的是Safari导航栏的高度
        page.style.height = window.innerHeight + (isFullScreen ? 0 : 60) + 'px'
    }
    setTimeout(scrollTo, 0, 0, 1);
}, false);

这段代码本质上就是当前窗口的高度 + 导航栏的高度 获取到真实的屏幕高度。最后再调用scrollTo方法。

更多精彩内容其他人还在看

Objective-C封装字符串存储操作示例

这篇文章主要介绍了Objective-C封装字符串存储操作示例,需要的朋友可以参考下
收藏 0 赞 0 分享

iphone的safari浏览器中实现全屏浏览的方法

这篇文章主要介绍了iphone的safari浏览器中实现全屏浏览的方法,同时介绍了Add to Home Screen功能的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

IOS开发教程之put上传文件的服务器的配置及实例分享

IOS开发给人一种高大上的赶脚,弄的好像你不会IOS就不是个合格的程序员一样,好吧,既然是大趋势,那我们就来学习下吧,今天来看看put上传文件的服务器配置及案例
收藏 0 赞 0 分享

苹果公司推出的新编程语言Swift简介和入门教程

这篇文章主要介绍了苹果公司推出的新编程语言Swift简介和入门教程,Swift是苹果于WWDC 2014.6.3发布的编程语言,主要用来替代Objective-C,需要的朋友可以参考下
收藏 0 赞 0 分享

CodeIgniter辅助函数helper详解

这篇文章主要介绍了CodeIgniter辅助函数helper,需要的朋友可以参考下
收藏 0 赞 0 分享

推荐一个非常棒的Titanium MVC框架

ChariTi是一个非常不错的Titanium MVC框架。此框架的特点是很多东西可直接通过配置文件实现,如APP的主题颜色,每个tab的内容,是否使用滑动菜单布局,是否支持tablet布局等,而且其对iOS 和 android也有很好的支持,同时也支持横屏和竖屏的转换然后使用不
收藏 0 赞 0 分享

objective-c中生成随机数的方法

这篇文章主要介绍了objective-c中生成随机数的方法,比较实用的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

个人对于异步和多线程的关系的理解分享

异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。
收藏 0 赞 0 分享

iOS开发之路--仿网易抽屉效果

本文是IOS开发之路系列的第一篇,主要讲诉了如何仿网易新闻客户端实现抽屉效果,全部源代码都分享给大家,希望对大家有所帮助
收藏 0 赞 0 分享

iOS开发之路--微博OAuth授权_取得用户授权的accessToken

本文是IOS开发之路系列文章的第二篇,讲诉的内容是如何使用微博OAuth授权,并付源码,然后详细讲解了取得用户授权的accessToken,希望对大家有所帮助
收藏 0 赞 0 分享
查看更多