中高級前端必須注意的 40 條移動端 H5 脫坑指南-HTML篇

以下文章來源于IQ前端 ,作者JowayYoung
#####HTML方向

調用系統(tǒng)功能
      使用<a>能快速調用移動設備的電話/短信/郵件三大通訊功能沙热,使用<input>能快速調用移動設備的的圖庫/文件初烘。

      這些功能方便了頁面與系統(tǒng)的交互,關鍵在于調用格式一定要準確变擒,否則會被移動端瀏覽器忽略
      ```
      <!-- 撥打電話 -->
      <a href="tel:10086">撥打電話給10086小姐姐</a>

      <!-- 發(fā)送短信 -->
      <a href="sms:10086">發(fā)送短信給10086小姐姐</a>

      <!-- 發(fā)送郵件 -->
      <a href="mailto:young.joway@aliyun.com">發(fā)送郵件給JowayYoung</a>

      <!-- 選擇照片或拍攝照片 -->
      <input type="file" accept="image/*">

      <!-- 選擇視頻或拍攝視頻 -->
      <input type="file" accept="video/*">

      <!-- 多選文件 -->
      <input type="file" multiple>
      ```
忽略自動識別
      有些移動端瀏覽器會自動將數(shù)字字母符號識別為電話/郵箱并將其渲染成上述「調用系統(tǒng)功能」里的<a>君珠。雖然很方便卻有可能違背需求。
      ```
        <!-- 忽略自動識別電話 -->
        <meta name="format-detection" content="telephone=no">

        <!-- 忽略自動識別郵箱 -->
        <meta name="format-detection" content="email=no">

        <!-- 忽略自動識別電話和郵箱 -->
        <meta name="format-detection" content="telephone=no, email=no">
      ```
彈出數(shù)字鍵盤
      使用<input type="tel">彈起數(shù)字鍵盤會帶上#和*娇斑,適合輸入電話策添。推薦使用<input type="number" pattern="\d*">彈起數(shù)字鍵盤,適合輸入驗證碼等純數(shù)字格式毫缆。
      ```
      <!-- 純數(shù)字帶#和* -->
      <input type="tel">

       <!-- 純數(shù)字 -->
      <input type="number" pattern="\d*">
      ```
喚醒原生應用
      通過location.href與原生應用建立通訊渠道唯竹,這種頁面與客戶端的通訊方式稱為「URL Scheme」,其基本格式為scheme://[path][?query]苦丁,筆者曾經發(fā)表過《H5與App的通訊方式》講述URL Scheme的使用浸颓。
      -「scheme」:應用標識,表示應用在系統(tǒng)里的唯一標識
      -「path」:應用行為,表示應用某個頁面或功能
      -「query」:應用參數(shù)猾愿,表示應用頁面或應用功能所需的條件參數(shù)

URL Scheme一般由前端與客戶端共同協(xié)商鹦聪。喚醒原生應用的前提是必須在移動設備里安裝了該應用,有些移動端瀏覽器即使安裝了該應用也無法喚醒原生應用蒂秘,因為它認為URL Scheme是一種潛在的危險行為而禁用它泽本,像Safari和微信瀏覽器。還好微信瀏覽器可開啟白名單讓URL Scheme有效姻僧。

若在頁面引用第三方原生應用的URL Schema规丽,可通過抓包第三方原生應用獲取其URL。
```

<a href="weixin://">打開微信</a>

      <!-- 打開支付寶 -->
      <a href="alipays://">打開支付寶</a>

      <!-- 打開支付寶的掃一掃 -->
      <a href="alipays://platformapi/startapp?saId=10000007">打開支付寶的掃一掃</a>

      <!-- 打開支付寶的螞蟻森林 -->
      <a href="alipays://platformapi/startapp?appId=60000002">打開支付寶的螞蟻森林</a>
      ```
禁止頁面縮放
      在智能手機的普及下撇贺,很多網站都具備桌面端和移動端兩種瀏覽版本赌莺,因此無需雙擊縮放查看頁面。禁止頁面縮放可保障移動端瀏覽器能無遺漏地展現(xiàn)頁面所有布局松嘶。
      ```
      <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, minimum-scale=1, maximum-scale=1">
      ```
禁止頁面緩存
      「Cache-Control」指定請求和響應遵循的緩存機制艘狭,不想使用瀏覽器緩存就禁止唄!
      ```
      <meta http-equiv="Cache-Control" content="no-cache">
      ```
禁止字母大寫
      有時在輸入框里輸入文本會默認開啟首字母大寫糾正翠订,就是輸入首字母小寫會被自動糾正成大寫巢音,特么的煩。直接聲明autocapitalize=off關閉首字母大寫功能和autocorrect=off關閉糾正功能尽超。
      ```
      <input autocapitalize="off" autocorrect="off">
      ```

針對Safari配置

      貼一些Safari較零散且少用的配置官撼。
      ```
      <!-- 設置Safari全屏,在iOS7+無效 -->
      <meta name="apple-mobile-web-app-capable" content="yes">

      <!-- 改變Safari狀態(tài)欄樣式似谁,可選default/black/black-translucent傲绣,需在上述全屏模式下才有效 -->
      <meta name="apple-mobile-web-app-status-bar-style" content="black">

      <!-- 添加頁面啟動占位圖 -->
      <link rel="apple-touch-startup-image" href="pig.jpg" media="(device-width: 375px)">

    <!-- 保存網站到桌面時添加圖標 -->
    <link rel="apple-touch-icon" sizes="76x76" href="pig.jpg">

    <!-- 保存網站到桌面時添加圖標且清除默認光澤 -->
    <link rel="apple-touch-icon-precomposed" href="pig.jpg">
      ```
針對其他瀏覽器配置
      貼一些其他瀏覽器較零散且少用的配置,主要是常用的QQ瀏覽器巩踏、UC瀏覽器和360瀏覽器秃诵。從網易MTL的測試數(shù)據得知,新版的QQ瀏覽器和UC瀏覽器已不支持以下<meta>聲明了塞琼。
      ```
      <!-- 強制QQ瀏覽器豎屏 -->
      <meta name="x5-orientation" content="portrait">

      <!-- 強制QQ瀏覽器全屏 -->
      <meta name="x5-fullscreen" content="true">

      <!-- 開啟QQ瀏覽器應用模式 -->
      <meta name="x5-page-mode" content="app">

      <!-- 強制UC瀏覽器豎屏 -->
      <meta name="screen-orientation" content="portrait">

      <!-- 強制UC瀏覽器全屏 -->
      <meta name="full-screen" content="yes">

       <!-- 開啟UC瀏覽器應用模式 -->
      <meta name="browsermode" content="application">

       <!-- 開啟360瀏覽器極速模式 -->
      <meta name="renderer" content="webkit">
      ```
讓:active有效顷链,讓:hover無效
      有些元素的:active可能會無效,而元素的:hover在點擊后會一直處于點擊狀態(tài)屈梁,需點擊其他位置才能解除點擊狀態(tài)。給<body>注冊一個空的touchstart事件可將兩種狀態(tài)反轉榛了。
      ```
      <body ontouchstart></body>
      ```
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末在讶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霜大,更是在濱河造成了極大的恐慌构哺,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異曙强,居然都是意外死亡残拐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門碟嘴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溪食,“玉大人,你說我怎么就攤上這事娜扇〈砦郑” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵雀瓢,是天一觀的道長枢析。 經常有香客問我,道長刃麸,這世上最難降的妖魔是什么醒叁? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮泊业,結果婚禮上把沼,老公的妹妹穿的比我還像新娘。我一直安慰自己脱吱,他們只是感情好智政,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著箱蝠,像睡著了一般续捂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宦搬,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天牙瓢,我揣著相機與錄音,去河邊找鬼间校。 笑死矾克,一個胖子當著我的面吹牛,可吹牛的內容都是我干的憔足。 我是一名探鬼主播胁附,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼滓彰!你這毒婦竟也來了控妻?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤揭绑,失蹤者是張志新(化名)和其女友劉穎弓候,沒想到半個月后郎哭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡菇存,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年夸研,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片依鸥。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡亥至,死狀恐怖,靈堂內的尸體忽然破棺而出毕籽,到底是詐尸還是另有隱情抬闯,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布关筒,位于F島的核電站溶握,受9級特大地震影響,放射性物質發(fā)生泄漏蒸播。R本人自食惡果不足惜睡榆,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袍榆。 院中可真熱鬧胀屿,春花似錦、人聲如沸包雀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽才写。三九已至葡兑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赞草,已是汗流浹背讹堤。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厨疙,地道東北人洲守。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像沾凄,于是被迫代替她去往敵國和親梗醇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內容