1. 程式人生 > >觸控式螢幕網站開發系列(一)-ios web App應用程式(ios meta)

觸控式螢幕網站開發系列(一)-ios web App應用程式(ios meta)

轉自 觸控式螢幕網站的開發其實現在來講比前幾年移動端網站開發好多了,觸控式螢幕裝置IOS、Android、BBOS6等系統自帶瀏覽器均為WEBKIT核心,這就說明PC上面尚未立行的HTML5 CSS3能夠運用在這裡,極大的減少了工作量和資料的缺乏。

這篇文章講述關於IOS觸屏網站meta的定義對網站的一些效果或者說是功能的幫助。

從最基本的講:

移動客戶端對meta的定義有幾項通用定義:

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

第一個meta標籤表示:

  • 強制讓文件與裝置的寬度保持1:1;
  • 文件最大的寬度比列是1.0(initial-scale初始刻度值和maximum-scale最大刻度值);
  • user-scalable定義是否可縮放(0為不縮放),使頁面固定裝置上面的大小。

(注意:實際測試中發現,HTC G7自身系統瀏覽器不支援這一條規則,能夠對頁面進行放大,一旦放大響應的box也隨之放大,導致俄頁面出現錯亂問題,解決方法:定義頁面的最小寬度 min-width,body{min-width: 300px;})

第二個meta標籤表示:

  • 使裝置瀏覽網頁時對數字不啟用電話功能(不同裝置解釋不同,itouch點選數字為存入聯絡人,iphone為撥打電話),忽略將頁面中的數字識別為電話號碼。

若需要啟用電話功能將telephone=yes即可,具體呼叫格式可以這樣書寫程式碼<a href=”13888888888″>Call Me</a>,若在頁面上面有google maps, iTunes和youtube的連結會在ios裝置上開啟相應的程式元件。

IOS裝置對meta定義的私有屬性:

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

這裡要詳細的介紹一下ios裝置對這兩個meta的功能作用(外界通稱該應用為“離線app”,但從字面意思上面會有誤解,以為只能脫離網路,所以在這裡我還是用web app描述。):

該meta可以看出內容為“蘋果裝置web 應用程式xx”,就是說該meta是專門定義web 應用的,但是什麼是web app呢?

web app就是HTML5的應用,例如可以開發一個html5的應用程式(如:小蜜蜂、俄羅斯方塊、水電氣費查詢等),基於html5的引用ios方面對這塊兒的支援在移動裝置上算是領先了。為什麼繼續往下看:

圖片一:在網站中進行儲存

圖片二:儲存至主螢幕

圖片三:填寫名稱

圖片四:主螢幕中樣式

圖片五:啟動時的啟動介面

圖片六:啟動完成後的介面

圖片七:後臺執行圖示-獨立存在

圖片八:編輯圖示

圖片九:刪除圖示提示

從圖中可以看出該程式的執行外觀上是脫離於瀏覽器的,實際上也是通過瀏覽器核心渲染出的,可以看作是一個app應用程式在執行,類似快捷方式。

web app 最大的好處有兩點

  • 不需要通過蘋果商店釋出。
  • 開發成本低,直接通過html5技術和蘋果提供的js函式,能夠做出滑動等效果,效果上面能夠完全模擬應用程式效果,非常適合企業做客戶端使用。

最明顯的缺點

  • 不支援推送(push)。

大家都知道 HTML5 帶來的革新,其中有一項功能就是對push的支援(現在PC上chrome支援push),雖然在蘋果上面目前還不能實現此功能,以後應該會開發這塊兒功能(感覺如果web app支援推送,那麼對他自己本身app store業務應該會有影響吧!!!)。

還是來說下這兩個meta對web app的設定吧~

第一個meta:

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

說明:

  • 網站開啟對web app程式的支援。

第二個meta:

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

說明:

  • 在web app應用下狀態條(螢幕頂部條)的顏色;
  • 預設值為default(白色),可以定為black(黑色)和black-translucent(灰色半透明)。

注意:

  • 若值為“black-translucent”將會佔據頁面px位置,浮在頁面上方(會覆蓋頁面20px高度–iphone4和itouch4的Retina螢幕為40px)。
  • 具體檢視圖片十、圖片十一、圖片十二。

糾正:

  • 之前查閱了一些資料,說apple-mobile-web-app-status-bar-style屬性為隱藏狀態列,其實這是一個誤解,在這裡為大家糾正一下這個問題。

圖示:

圖片十:black狀態

圖片十一:default狀態

圖片十二:black-translucent狀態

兩個meta的設定即可對web app程式進行支援了。

蘋果web app其他設定:

當然,配合web app的icon 和 啟動介面需要額外的兩端程式碼進行設定,如下所示:

<link rel="apple-touch-icon-precomposed" href="iphone_milanoo.png" />

說明:

  • 這個link就是設定web app的放置主螢幕上icon檔案路徑(圖片四)。

使用:

  • 該路徑需要注意的就是放到將網站的文件根目錄下但不是伺服器的文件的根目錄。
  • 圖片尺寸可以設定為57*57(px)或者Retina可以定為114*114(px),ipad尺寸為72*72(px)
<link rel="apple-touch-startup-image" href="milanoo_startup.png" />

說明:

  • 這個link就是設定啟動時候的介面(圖片五),放置的路勁和上面類似。

使用:

  • 該路徑需要注意的就是放到將網站的文件根目錄下但不是伺服器的文件的根目錄。
  • 官方規定啟動介面的尺寸必須為 320*640(px),原本以為Retina螢幕可以支援雙倍,但是不支援,圖片顯示不出來。

還要說明下,如圖三,裡面的預設名稱為程式碼title標籤的內容。

至此,一個web app建立完成。

如果對web app的這兩個meta還有不能詳細理解的可以檢視官方解釋:

關於link方面還有更多的引數設定(例如:ipod、ipad、iphone不同尺寸不同圖示),可以檢視官方標準文件:

後話:雖然web app可能是將來移動網站的應用趨勢,但目前能夠看見一些不夠強大的地方,就目前的ios4的裝置而言之前就被報道過,web app的執行效能不高,還存在遲緩現象,原因是safari 本身有個javascript的加速引擎,但是web app雖然是通過webkit核心渲染,但是未在safari進行執行,所以js引擎將無法對其進行加速作用。

相關推薦

觸控式螢幕網站開發系列-ios web App應用程式ios meta

轉自 觸控式螢幕網站的開發其實現在來講比前幾年移動端網站開發好多了,觸控式螢幕裝置IOS、Android、BBOS6等系統自帶瀏覽器均為WEBKIT核心,這就說明PC上面尚未立行的HTML5 CSS3能夠運用在這裡,極大的減少了工作量和資料的缺乏。 這篇文章講述關於IO

五年java開發生涯中次吐血的項目救火程序員何苦難為程序員

java 架構 我現在就職於一家中型的互聯網企業,去年年底入職的薪資和待遇都很不錯,但是總結起來說的好聽就是全村人的希望,說的不好聽就是一個人幾乎幹了一個項目組的事。下面是我的一次項目救火經歷(背鍋經歷)。就是年後的一個合作公司上線了一個子業務系統,對接公司內部的單點系統。我收到該公司的技術咨詢:項目

【隨堂筆記】unity開發中Socket的用法,實現伺服器與客戶端簡單的連結

實現了簡單的連結,也增加了客戶端沒有連結到伺服器的自動重連 伺服器程式碼 using System; using System.Net; using System.Net.Sockets; namespace SeverSocket { class Program

開發筆記】Unity聯網鬥地主的實現,伺服器與客戶端的資料傳遞流程

話不多說,先上我李老師的思維導圖 大致構思了一個框架 1.首先要定義一下伺服器與客戶端的傳輸協議,必須保持一致 2.定義服務於客戶端傳輸的訊息型別,如(申請加入,同意加入,出牌,之類的) 3.定義一下牌的型別,出的牌的型別,在客戶端判斷是否可以出牌,牌型傳給伺服器,伺服器在完成三個玩家的出

積跬步至千里系列之六--安裝與解除安裝應用程式(PackageInstaller)

PackageInstaller屬於framework層的一個系統應用,其位置位於:原始碼目錄/package/apps/PackageInstaller.所有的系統預製應用全都放在apps/目錄下,比如Setting, Launcher等都在此目錄下. 我是

MFC開發簡單同步時間應用程式

看了一個垃圾程式的架構,mmp真坑,自己費了一點功夫才搞定,就直接記錄下吧,這個是windows簡單的應用程式,但是裡面有點複雜,我們需要首先建立一個基於mfc的appwinzard程式,(憑記憶寫的,不知道單詞有沒有錯誤),然後我們直接在winmain類中新增下面的變數 # include<tim

JS元件系列——又款MVVM元件:Vue:30分鐘搞定前端增刪改查

正文 前言:關於Vue框架,好幾個月之前就聽說過,瞭解一項新技術之後,總是處於觀望狀態,一直在猶豫要不要系統學習下。正好最近有點空,就去官網瞭解了下,看上去還不錯的一個元件,就抽空研究了下。最近園子裡vue也確實挺火,各種入門博文眼花繚亂,博主也不敢說寫

Arduino 高階教程 02:用 Visual Studio 2015 開發 Arduino 應用程式

Arduino IDE 的缺點 雖然 Arduino 很流行很火爆,但是 Arduino IDE 卻非常、非常、非常弱。編寫程式碼很不方便,只能說提供了一個最基本的寫程式碼的工具而已,除錯程式碼也很不方便。而且,Arduino IDE 中寫程式碼,只能是把

arcgis api 4.x for js 結合 react 入門開發系列react全家桶實現加載天地圖附源碼下載

style foo 多說 target pat tile es6 wrap 頁面 基於兩篇react+arcgis的文章介紹,相信大家也能體會兩者的開發區別了。在“初探篇”中作者也講述了自己的選擇,故廢話不多說,本篇帶大家體驗在@arcgis/web

Spring.NET教程二十整合Web Service(應用篇)

desc 例子 art 需要 ace 換工作 ali 關聯 private 雖然目前.net對WebService支持的非常好,Spring.NET認為還是有幾個方面可以改進: 第一、.NET在.asmx文件中保存WebService請求和服務對象的關聯關系,這些.asm

資料結構演算法題/最大子序列維陣列中和最大的連續子序列

1首先看一下 最大子序列。 最大子序列是要找出由陣列成的一維陣列中和最大的連續子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,達到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已經看出來了,找最大子序列的方法很簡單,只要前i項的和還沒有

Sping cache 資料。Spring4.1新特性——Spring快取框架增強

Spring 4.1提供了對jcache的支援,並對cache抽象部分進行了一些簡單的增強。在整合jcache時是非常費勁的,版本之間各種不相容,不建議用於正式環境,在正式環境中可以使用如Guava Cache或Ehcache。   jcache依賴:

Oracle Database 12c DBA文官手冊第8版——第5章 開發和實現應用程式

5.2、資源管理5.2.1、實現資料庫資源管理需要建立資源計劃、資源消費者組和資源計劃指令。使用資源管理器命令前須建立“未決區域”。針對會話啟用ADMINISTRATOR_RESOURCE_MAANAGER系統許可權將使用者賦給資源消費者組建立資源計劃指令分配相關資源1 切換消費者組2 使用SQL配置檔案5.

c++讀檔案次全讀/每行讀/多次讀

我以為這些都很容易在網上找到,誰知網上亂七八糟的東西太多,讓我找了很久。。 開發環境為Windows,VS2013 一次全讀: std::ifstream t(path); //讀檔案ifstream,寫檔案ofstream,可讀可寫fstream std::stringstr

weex 載入三端(android ios web) 本地圖片 解決專案中已實踐

  本文講解內容為weex載入三端本地圖片,所寫解決方案均已驗證,使用sdk版本為0.18.0,其他版本不能保證可行。   weex載入圖片方式有三種,1.src直接引用base64編碼,2.載入網路圖片,3.載入本地圖片(三端分別放在專案目錄)。前兩種都是比較簡單直接,第三種相對初

「Odoo 基礎教程系列」第六篇——從 Todo 應用開始5

大家好鴨,我又來更新啦!還記得我們在第二篇教程中提到過的動作(actions)嗎,今天我們就來專門講講在 Odoo 中的 action,學習不同型別的動作對應的應用場景,並且在我們的 Todo 應用中使用上其中一些型別的動作。 視窗動作 視窗動作在 Odoo 中是

Spring Boot開發系列(Cassandra)()--CentOS下Cassandra環境搭建

Spring Boot開發系列(Cassandra)(一)–CentOS下Cassandra環境搭建 【1】安裝JAVA 1.8 檢視CentOS中已安裝的JAVA版本 rpm -qa|grep jdk 解除安裝CentOS中系統預裝的JAVA yum -y

Vue系列1:單頁面應用程式

前言:關於頁面上的知識點,如有侵權,請看 這裡 。 關鍵詞:SPA、單個 HTML 檔案、全靠 JS 操作、Virtual DOM、hash/history api 路由跳轉、ajax 響應、按需載入、MVVM SPA 我們先來看一下在百科上面的解釋吧,emmmm,一般呢,我每次搜尋一些不懂的詞,都會

假如你不小心幹掉了系統,你該怎麼辦?次手賤的記錄 ~ Ubuntu and Python3.6

前言 多年未犯低階錯誤,今天犯了個不大不小的錯誤,記錄下生活點滴吧 今天早上腦海裡想了下,如果電腦掛了我要備份哪些東西?然後中午休息的時候就列了一下,沒想到晚上就悲劇了... 這個是中午寫的: ## If I to bak **`瀏覽器書籤備份`** ~/桌面(**先push到github**) ~/下載(