webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />

<meta content="yes" name="apple-mobile-web-app-capable" />

<meta content="black" name="apple-mobile-web-app-status-bar-style" />

<meta content="telephone=no" name="format-detection" />

  • 第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览;
  • 第二个meta标签是iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;
  • 第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;
  • 第四个meta标签表示:告诉设备忽略将页面中的数字识别为电话号码;

如何去除iOS和Android中的输入URL的控件条

你的老板或者PD或者交互设计师可能会要求你:能否让我们的webapp更加像nativeapp,我不想让用户看见那个输入url的控件条?

答案是可以做到的。我们可以利用一句简单的javascript代码来实现这个效果

setTimeout(scrollTo,0,0,0);

请注意,这句代码必须放在

window.onload

里才能够正常的工作,而且你的当前文档的内容高度必须是高于窗口的高度时,这句代码才能有效的执行。

如何禁止用户旋转设备

我曾经也想禁止用户旋转设备,也想实现像某些客户端那样:只能在肖像模式或景观模式下才能正常运行。但现在我可以很负责任的告诉你:别想了!在移动版的webkit中做不到!

至少Apple webapp API已经说到了:我们为了让用户在safari中正常的浏览网页,我们必须保证用户的设备处于任何一个方位时,safari都能够正常的显示网页内容(也就是自适应),所以我们禁止开发者阻止浏览器的

orientationchange

事件,看来苹果公司的出发点是正确的,苹果确实不是一般的苹果。

iOS已经禁止开发者阻止

orientationchange

事件,那Android呢?对不起,我没有找到任何资料说Android禁止开发者阻止浏览器

orientationchange

事件,但是在Android平台,确实也是阻止不了的。

如何检测用户是通过主屏启动你的webapp

看过Apple webapp API的同学都知道iOS为safari提供了一个将当前页面添加主屏的功能,按下iphone ipod ipod touch底部工具中的小加号,或者ipad顶部左侧的小加号,就可以将当前的页面添加到设备的主屏,在设备的主屏会自动增加一个当前页面的启动图标,点击该启动图标就可以快速、便捷的启动你的webapp。

从主屏启动的webapp和浏览器访问你的webapp最大的区别是它清除了浏览器上方和下方的工具条,这样你的webapp就更加像是nativeapp了,还有一个区别是window对像中的navigator子对象的一个

standalone

属性。

iOS中浏览器直接访问站点时,

navigator.standalone

为false,从主屏启动webapp时,

navigator.standalone为true

,我们可以通过navigator.standalone这个属性获知用户当前是否是从主屏访问我们的webapp的。

在Android中从来没有添加到主屏这回事!

12、如何关闭iOS中键盘自动大写

我们知道在iOS中,当虚拟键盘弹出时,默认情况下键盘是开启首字母大写的功能的,根据某些业务场景,可能我们需要关闭这个功能,移动版本webkit为input元素提供了

autocapitalize

,通过指定

autocapitalize="off"

来关闭键盘默认首字母大写。

13、iOS中如何彻底禁止用户在新窗口打开页面

有时我们可能需要禁止用户在新窗口打开页面,我们可以使用a标签的

target="_self"

来指定用户在新窗口打开,或者

target

属性保持空,但是你会发现iOS的用户在这个链接的上方长按3秒钟后,iOS会弹出一个列表按钮,用户通过这些按钮仍然可以在新窗口打开页面,这样的话,开发者指定的target属性就失效了,但是可以通过指定当前元素的

-webkit-touch-callout

样式属性为none来禁止iOS弹出这些按钮。这个技巧仅适用iOS对于Android平台则无效。

14、iOS中如何禁止用户保存图片\复制图片

我们在第13条技巧中提到元素的

-webkit-touch-callout

属性,同样为一个img标签指定

-webkit-touch-callout:none

,这样用户就无法保存\复制你的图片了。

15、iOS中如何禁止用户选中文字

我们通过指定文字标签的

-webkit-user-select:none

便可以禁止iOS用户选中文字。

16、iOS中如何获取滚动条的值

桌面浏览器中想要获取滚动条的值是通过

document.scrollTop

document.scrollLeft

得到的,但在iOS中你会发现这两个属性是未定义的,为什么呢?因为在iOS中没有滚动条的概念,在Android中通过这两个属性可以正常获取到滚动条的值,那么在iOS中我们该如何获取滚动条的值呢?

通过window.scrollY和window.scrollX我们可以得到当前窗口的y轴和x轴滚动条的值。

17、如何解决盒子边框溢出

当你指定了一个块级元素时,并且为其定义了边框,设置了其宽度为100%。在移动设备开发过程中我们通常会对文本框定义为宽度100%,将其定义为块级元素以实现全屏自适应的样式,但此时你会发现,该元素的边框(左右)各1个像素会溢了文档,导致出现横向滚动条,为解决这一问题,我们可以为其添加一个特殊的样式

-webkit-box-sizing:border-box;

用来指定该盒子的大小包括边框的宽度。

18、如何解决Android 2.0以下平台中圆角的问题

如果大家够细心的话,在做wap站点开发时,大家应该会发现android 2.0以下的平台中问题特别的多,比如说边框圆角这个问题吧。

在对一个元素定义圆角时,为完全兼容android 2.0以下的平台,我们必须要按照以下技巧来定义边框圆角:

  • -webkit

    这个前缀必须要加上(在iOS中,你可以不加,但android中一定要加);

  • 如果对针对边框做样式定义,比如border:1px solid #000;

    那么
    -webkit-border-radius

    这属性必须要出现在
    border

    属性后。

  • 假如我们有这样的视觉元素,左上角和右上角是圆角时,我们必须要先定义全局的(4个角的圆角值)-webkit-border-radius:5px;

    然后再依次的覆盖左下角和右下角,
    -webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-border:0;

    否则在android 2.0以下的平台中将全部显示直角,还有记住!
    -webkit

    这个前缀一定要加上!

19、如何解决android平台中页面无法自适应

虽然你的html和css都是完全自适应的,但有一天如果你发现你的页面在android中显示的并不是自适应的时候,首先请你确认你的head标签中是否包含以下meta标签:

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;" />

如果有的话,那请你再仔细的看清楚有没有这个属性的值

width=device-width

,如果没有请立即加上吧!

20、如何解决iOS 4.3版本中safari对页面中5位数字的自动识别和自动添加样式

新的iOS系统也就是4.3版本,升级后对safari造成了一个bug:即使你添加了如下的meta标签,safari仍然会对页面中的5位连续的数字进行自动识别,并且将其重新渲染样式,也就是说你的css对该标签是无效的。

<meta name="format-detection" content="telphone=no" />

我们可以用一个比较龌龊的办法来解决。比如说支付宝wap站点中显示金额的标签,我们都做了如下改写:

<button class="t-balance" style="background:none;padding:0;border:0;">95009.00</button>

转载于:https://www.cnblogs.com/papajia/p/4498315.html

移动开发不能不知道的事-meta相关推荐

  1. ES6 你可能不知道的事 – 基础篇

    ES6 你可能不知道的事 – 基础篇 转载 作者:淘宝前端团队(FED)- 化辰 链接:taobaofed.org/blog/2016/07/22/es6-basics/ 序 ES6,或许应该叫 ES ...

  2. java你可能不知道的事(2)--堆和栈

    为什么80%的码农都做不了架构师?>>>    在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们.今天我们就一起来学习堆.栈的特点以及它们的区 ...

  3. 祝贺!屠呦呦再获国际大奖!一文读懂:神药青蒿素那些我们不知道的事

    又有好消息传来!总部位于法国巴黎的联合国教科文组织10月22日公布2019年度联合国教科文组织-赤道几内亚国际生命科学研究奖获奖名单,共3人获奖,其中包括来自中国的屠呦呦. 此前,屠呦呦先后拿下多项大 ...

  4. 补充小程序的一些观点,以及你可能还不知道的事(内附最全小程序名单、小程序商店)...

    微信小程序 注:此文部分内容引自网络观点,其他为原创. 文 / IDO老徐 & 网络 从昨晚(1月9日)凌晨开始,老徐的朋友圈就被小程序各种刷屏,各新媒体小编那真是一个拼命啊,凌晨1点就已经能 ...

  5. 关于Spring Boot你不得不知道的事

    1 Spring Boot官网[2.1.5 CURRENT GA] 1.1 Pivotal Wiki Pivotal Software, Inc. is a software and services ...

  6. 我不知道的事——深克隆和浅克隆

    推荐一部好电影<致命魔术>.(此处为植入广告)        推荐理由:涉及人性.画面不错,剧情跌宕,亦魔亦幻(此处的"魔"为魔术的"魔").虽然女 ...

  7. 跨性别,你所不知道的事

    今晚原计划在订阅号里推送南溪妹子前几天录制的跨性别科普视频,没想到今天收到南溪的私信,说不做科普了,还是算了吧.急忙去了解了一下原因 (http://www.zhihu.com/pin/9631015 ...

  8. 前端开发不得不知道的网站大全

    作为一名前端开发者(所有程序员)最起码遇到bug就算不会解决也应该会搜解决问题的答案. 一般笔者会先在百度搜(关键词一定要输入正确) 如果没搜到会再去bing里面看看 还没有的话就去github的Is ...

  9. 自动化测试 | 如何选择半导体测试系统——你不得不知道的事

    半导体产品 半导体产品,又被称为集成电路或者IC,英文名是Semiconductor Device.在半导体测试中常用DUT(Device Under Test)来表示需要检测的IC单元.半导体测试的 ...

  10. 手机通讯录分组名称_实用|关于手机重置你不得不知道的事

    我是沐雨,欢迎你的到来 写在开头:刚刚在有道云搜索"手机重置",结果发现距离手机重置已经过去近两个月了,好可怕的拖延.在经过一次手忙脚乱的手机重置之后,我就想写一篇关于手机重置的文 ...

最新文章

  1. Python入门学习方法有哪些?
  2. 苏大JAVA题库_苏州大学Java程序设计课程试卷含答案(B)
  3. 4.3 matlab常用的特殊图形(条形图、直方图、饼图、散点图等)
  4. 2021.02.05 Visual QA论文阅读
  5. CPU的主频,总线频率和L2缓存对电脑的性能有哪些影响
  6. 关于软件版本命名的方法
  7. 模仿Spring实现一个类管理容器
  8. SAP开源Java SCA工具,提供静态代码安全性测试功能
  9. centos7部署posgresql和kong总结
  10. python for循环经典案例
  11. Wondows Sever 2003密钥【收集】
  12. Google收购Urchin
  13. linux nand flash模拟u盘,STM32 USB NAND FLASH 模拟U盘
  14. 网页内嵌lodop控件,部分电脑一直提示未安装
  15. c语言else if设计一个成绩表,c语言 学生成绩管理系统设计学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等。主要功能:(1) 计算各...
  16. 39-网上商城数据库-用户信息数据操作
  17. rar格式压缩包无法下载,zip可以下载
  18. 前端基础(HTML、CSS、JS)
  19. 还在搞公众号互推涨粉?这个小工具助你粉丝躺增!
  20. 测评瑞萨RZ/G2L存储读写速度与网络

热门文章

  1. 重磅消息:F5收购Nginx!
  2. 推荐一个很好用的 Android Studio 插件
  3. 关于 exynos 4412 按键中断 异步通知
  4. 私人影院音响效果如何有效提升?
  5. 转【es中数据节点和主机】
  6. C刷题记录-1017
  7. SDUST 作业10 Problem D 魔方阵
  8. SAS学习经验总结分享:篇五-过程步的应用
  9. emule学习与分析二 上 建立连接过程分析
  10. P3373 线段树2(多重标记线段树)题解