Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android手機 >> Android手機知識 >> iPhone5和iOS6上HTML5開發的新增功能

iPhone5和iOS6上HTML5開發的新增功能

編輯:Android手機知識

  開發移動應用到底是選擇Native、Web應用或者混合應用?答案是不同的移動應用需要不同的技術,選擇合適的就行。其實大多數移動應用,不管是企業移動應用還是互聯網移動應用,90%都可以使用基於HTML5的Web技術就足夠。在Android 4.0和iOS 6以上浏覽器已經是最快的應用了,比任何本地的微博、微信都快,無須更新升級,無須上傳分裂的APP市場,無須突然被蘋果下架應用。再看看最近發布 Firefox OS 開發手機的配置也大概知道,運行大多數應用不需要那麼高配置。

  目前主流的智能終端中,iOS6對HTML5的支持程度仍舊是最好的,領先於Android和Windows phone。隨著iPhone5的性能再次翻倍,以及iOS不斷提升的canvas渲染性能,加之Android的webGL,Win8/wp8的本地api對Javascript開放,性能已經不再是開發優秀移動應用的主要屏障,如今要考慮的是如何發揮HTML5的優勢做出用戶喜歡的應用。下面看看iPhone5和iOS6上HTML5開發的新增功能。

  iPhone 5

新的屏幕尺寸 新模擬器 你需要做的 問題

  iOS 6的新功能

文件上傳、具有媒體捕捉攝像頭的訪問和文件API 網絡音頻API 本機應用程序集成的智能應用橫幅 CSS 3過濾器 交叉淡入淡出CSS 3 CSS Partial圖片支持 全屏支持 動畫計時API 支持多分辨率的圖像 Passbook優惠券和月票交付 存儲API和Web應用程序的變化 本機Web應用程序的Web View的改變 遠程Web Inspector調試 更快的JavaScript引擎和其他新功能

  iPhone 5

  新的iPhone 5,以及自從iPod Touch第5代開始,在Web開發方面有一個大的變化:屏幕分辨率。 這些設備具有寬4寸屏幕,WDVGA(廣角雙 VGA)640×1136像素,326 DPI的Retina Display。 這些設備和iPhone 4/4S一樣具有相同的寬度但高176像素。

  新模擬器 

    包含iPhone 5仿真器的Xcode4 iOS 模擬器

  新的Xcode 4(Mac AppStore )包括更新後的iPhone模擬器。 新版本的iPhone模擬的三個選項: 

iPhone:iPhone 3GS,iPod Touch的第一,第三代 iPhone Retina 3.5“:iPhone 4,iPhone 4s,iPod Touch的第四代 iPhone Retina 4“:iPhone5,iPod Touch的第5代

  新的模擬器還包括取代谷歌地圖的新地圖應用程序和Passbook。

  你需要為新設備做的

  通常情況下,如果你的網站/應用程序進行了優化,可垂直滾動,不應該有任何問題。 同一個視口(Viewport)中,圖標和iPhone 4/4S技術應能正常工作。 但當更新了iOS,同時也更新了Web View:這意味著所有的本機Web應用程序,如PhoneGap/Apache Cordov應用程序和偽浏覽器,如iOS上谷歌浏覽器也更新了。 但是, 如果您的解決方案是高度相關的,那麼可能有一個問題,看看下面的例子,iPhone 4和iPhone 5的谷歌地圖網站。 由於這是說作為一個恆定的高度,不隱藏狀態欄,並在底部有一欄空白。 

   如果你設計了一個特定高度的谷歌地圖。 正如你可以看到的(右圖來自iPhone 5)有一個白色的底欄和URL地址欄無法隱藏,因為沒有足夠的內容。

  如果您使用的是響應性的Web設計,你不應該有太多的麻煩,通常情況下,RWD技術使用的是寬度而不是高度作為條件。

  設備檢測

  在寫這篇文章的時候,還沒有iPhone 5在市面上。 沒有辦法在服務器端檢測iPhone 5 。 用戶代理只有iOS 6系統的iPhone,以及使用完全相同的用戶代理的iOS6系統的iPhone 4S和iPhone 5。

  Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25

   因此, 客戶端檢測4寸iPhone設備唯一的方法來是使用JavaScript或媒體查詢。請記住,這些器件具有1136像素的高度,但我們所談論的CSS像素(獨立分辨率像素)約568像素高度,為這些設備像素的一半。

  isPhone4inches = (window.screen.height==568);

  使用CSS媒體查詢和響應性Web設計技術,我們可以檢測到iPhone 5使用:

  @media (device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) {

  /* iPhone 5 or iPod Touch 5th generation */

  }

  主屏幕的webapps

  主屏幕的webapps問題似乎是很嚴重的。 我已經報告了這個問題,在NDA還沒有來自蘋果的任何答案。

   當你添加一個網站的首頁到屏幕,支持apple-mobile-web-app-capable元標簽的web應用只工作在iPhone 3.5“仿真模式(它不考慮整個高度)。 

   在圖像裡能看到黑欄條。 這是iPhone 5和新iPod Touch默認情況下全屏幕webapp。

  如果操作系統是不確定是否支持更寬的屏幕,不給web應用擴展高度是一個好主意。 如果你提供一個apple-touch-startup-image為640×1096,iPhone 5將它調整大小為640×920放在主屏幕。

  解決方案是, 你需要忘記viewport的width=device-width or width=320。 如果不提供viewport,webapps將正常工作。 同樣的,如果你使用其他屬性而不是寬度也類似,如果你不希望viewport默認980px,可以這樣:

  <meta name="viewport" content="initial-scale=1.0">

  甚至如果指定一個不同於320寬可以這樣:

  <meta name="viewport" content="width=320.1">

  不動viewport,下面的腳本也可以達到目的:

  if (window.screen.height==568) { // iPhone 4"

  document.querySelector("meta[name=viewport]").content="width=320.1";

  }

  如果程序啟動圖像為640×1096,並在不同的設備上使用不同的圖像,你可以使用媒體查詢。 一些報道說,你需要將啟動圖片象本機程序一樣命名為“[email protected]”但不正確。 不過你想要的話,可以將它命名。 但大小屬性被完全忽略。

  您可以使用媒體查詢,提供不同的啟動圖片:

  <link href="startup-568h.png" rel="apple-touch-startup-image" media="(device-height: 568px)">

  <link href="startup.png" rel="apple-touch-startup-image" sizes="640x920" media="(device-height: 480px)">

  如果你想為低分辨率設備提供了另一種版本,那麼你可以使用WebKit的設備像素比的條件了。 如果你想知道為什麼是568px而不是1136px,記住我們使用的CSS像素和這些設備的像素比為2。

  另一個問題是,購買了新設備後, iTunes將是否再次從備份安裝快捷方式圖標,這是不明確的

  iOS 6和HTML5的開發

  iOS 6是為每一個iOS 5設備免費提供更新的,除了iPad第一代,所以我們會看到這個版本浏覽網頁真的很快,iPad的市場被第一次分割。 下面的調查結果是可用於所有iOS升級iOS設備。

  文件管理問題

  iOS 6 上的 Safari 浏覽器支持的文件上傳並且有HTML Media Capture的部分支持。 一個簡單的文件上傳,會要求用戶從相機或相冊裡輸入一個文件,你可以在圖中看到。 我真的很喜歡Safari顯示圖片預覽,而不是一個臨時文件名。

  <label>Single file</label>

  <input type="file">

  我們也可以使用HTML5新的布爾屬性請求multiple文件。 在這種情況下,用戶可以不使用相機作為源。

  <label>Multiple files</label>

  <input type="file" multiple>

   我們可以使用文件上傳訪問攝像頭和相冊

  雖然沒有辦法強制使用攝像頭, 但我們可以使用accept屬性只指定想捕捉的圖像或視頻。

  <input type=file accept="video/*">

  <input type=file accept="image/*">

  不支持其他類型的文件 ,如音頻,Pages文檔或PDF文件。 也沒有getUserMedia攝像頭的實時流媒體支持。

  有圖片和視頻選擇後你能做什麼呢?

使用multipart POST表單提交上傳 使用XMLHttpRequest 2 AJAX上傳(甚至進度支持) 使用文件API ,在iOS 6允許JavaScript直接讀取的字節數和客戶端操作文件。 HTML5ROCKS 有一個很好的API例子。

  網絡音頻API

  HTML5游戲開發商應該是喜歡! 網絡音頻API在移動浏覽器第一次出現。 這個JavaScript API允許我們處理和合成音頻。 如果你從來沒有玩過一些低級別的音頻,API可能看起來有點怪異,但一段時間以後就不難理解了。 同樣,HTML5ROCKS有一個好文章使用音頻API上手。

  API更多的信息和消息在 http://www.html5audio.org

  智能應用程序橫幅

  網站還是本機應用程序? 如果我們都有,現在我們可以將我們的網站與我們的本機應用程序連接 。 有了智能應用程序橫幅,當網站上有一個相關聯的本機應用程序時,Safari浏覽器可以顯示一個橫幅。 如果用戶沒有安裝這個應用程序將顯示“安裝”按鈕,或已經安裝的顯示“查看”按鈕可打開它。 我們也可以從網絡發送參數給本機應用程序。 例如打開與用戶在網站上看到內容相同的本機應用程序位置。

  要定義一個智能應用程序橫幅,我們需要創建一個meta標簽, 名稱=“apple-itunes-app”。 首先,我們需要去iTunes Link Maker搜索我們的應用程序和應用程序ID。

  <meta name="apple-itunes-app" content="app-id=9999999">

  我們可以使用 app-argument 提供字符串值,如果我們參加的iTunes聯盟計劃,我們還可以添加子公司相同的元標記數據 

  <meta name="apple-itunes-app" content="app-id=9999999, app-argument=xxxxxx">

  <meta name="apple-itunes-app" content="app-id=9999999, app-argument=xxxxxx, affiliate-data=partnerId=99&siteID=XXXX">

  橫幅需要156像素(設備是312 hi-dpi)在頂部,直到用戶在下方點擊內容或關閉按鈕,您的網站上才為你的網站展現全部的高度。 它就像HTML的DOM對象,但它不是一個真正的DOM。 

  有了智能應用程序橫幅,浏覽器會自動邀請用戶安裝或打開本機應用程序

  幾秒鐘內,橫幅顯示“加載”動畫時系統驗證應用程序對當前用戶的設備和App Store是有效的。 如果它是無效的,旗幟自動隱藏,例如,它是一個iPad的唯一的應用程序,你正在浏覽iPhone或應用程序僅適用於德國的App Store,而您的帳戶是在美國。

  CSS 3過濾器

  CSS 3 過濾器是一組圖像操作,我們可以使用CSS的功能,如灰度,模糊,下拉陰影,亮度等功效。 這些功能將在屏幕上顯示內容前被應用。 我們可以用spaces使用多個過濾器。

  這裡你可以嘗試一個很好的演示。 一個簡單的例子,例如:

  -webkit-filter: blur(5px) grayscale (.5) opacity(0.66) hue-rotate(100deg);

  CSS 3交叉淡變

  iOS 6開始支持一些新的CSS Image Values,包括交叉淡入淡出功能。 有了這個功能,我們可以將兩個圖像在同一個地方有不同程度的透明度,它甚至可以是過渡或動畫的部分。

  簡單的例子:

  background-image: -webkit-cross-fade(url("logo1.png"), url("logo2.png"), 50%);

  Safari中的全屏幕

  除了chrome-less 主屏幕meta標簽,現在的iPhone和iPod Touch(而不是在iPad)支持全屏幕模式的窗口。 這是完美的身臨其境的體驗,如游戲或多媒體應用程序。 沒有辦法強制全屏模式,它需要由用戶啟動(工具欄上的最後一個圖標)。 但是,我們可以邀請用戶,移動到窗口,並按下屏幕上的全屏圖標來激活我們的應用程序。 如果我們混合了一些觸摸事件處理,我們就可以隱藏URL地址欄來提供良好界面,直到用戶離開全屏幕。

   iPhone和iPod Touch上的全螢幕導航

  你總能找到兩個或三個覆蓋底部的按鈕,你應該知道,哪個後退按鈕,可選的前進按鈕和取消全屏。

  您可以使用onresize事件檢測是否用戶切換到全屏幕。

  動畫計時API

  游戲開發人員很幸運。 iOS 6支持的動畫計時API ,也被稱為requestAnimationFrame,一個新的方法來管理基於JavaScript的動畫。 這裡有一個很好的示范,更詳細的說明看來自保羅愛爾蘭博客 。

  CSS圖片Set,這是沒有任何標准組的一部分。 這是一個新的圖像功能, 圖像集接收一組附加的條件或圖片。有了這個新的功能,我們不需要為不同的分辨率,使用媒體查詢來定義不同的圖像。 工作的語法是:

  -webkit-image-set(url(low.png) 1x, url(hi.jpg) 2x)

  它就像CSS背景圖像一樣工作 。  有了這個新的語法,我們可以有更清晰的多分辨率圖像清晰度,因此我們並不需要使用媒體查詢和background-size 值。

  Passbook 

  Passbook是一個新的iOS應用程序,一個虛擬容器,例如通行證,門票,優惠券,會員卡,禮品卡。 作為一名Web開發人員,你可能想為用戶提供優惠券,門票,你的下一個航班的電子客票或忠誠卡。

  蘋果允許網站不需要本機程序就可提供這種通行證 。

  為了在您的網站上提供通行證,你需要使用application/vnd.apple.pkpass MIME類型或通過電子郵件發送

  蘋果提供了一個工具,您可以在您的服務器上快速地安裝打包和定制簽名通行證可能包括當前用戶的信息

  要傳遞的文件僅僅是一個JSON元數據文件和一對圖像。 我們需要打包文件,並簽署。 不幸的是 , 要簽署通過,我們需要蘋果的簽名 ,這意味著Web開發人員需要一個iPhone開發者計劃帳戶($ 99/year)。 如果您收到通知已經簽署,您可以將它在自己的網站上。

  通行證的強大功能之一是,一旦安裝結束,並通過推送通知服務,可以提供一些網絡服務給用戶和推送消息提醒,操作系統將調用你的Web服務,更新信息的傳遞。

  更多passbook信息developer.apple.com

  存儲API和web應用程序的更新

  沒有新的存儲API。 沒有索引型數據庫的支持。 然而,也有一些變化,你應該考慮:

應用程序緩存限制增加至25MB。 Chromeless web應用程序 (使用apple-mobile-web-app-capable meta標簽)現在有自己的存儲沙箱 。 這意味著,即使他們來自同一個域,來自主屏幕上web應用都會有它自己的持久本地存儲和SQL存儲。 即使你多次安裝的圖標,每個圖標都會有自己的沙箱。 雖然這是個好消息,但如果你從網站通過存儲傳遞信息給主屏幕小部件,它可能也是一個問題。 看喬治·亨納的文章 。 有一個新的未公開的meta標簽,可用於在任何網站上( apple-mobile-web-app-capable元標記),允許我們為主屏幕圖標定義不同的標題 。 正如你可能知道,在默認情況下Safari浏覽器文檔的標題限制為13個字符。 現在我們可以定義主屏幕使用的替代標題

  <meta name="apple-mobile-web-app-title" content="My App Name">

  我還發現, apple-mobile-web-app-orientations接受的可能值有portrait, portrait-upside-down, landscape-right, landscape-left, portrait-any。

  Web View更新

  Web View(pseudobrowsers,PhoneGap/Cordova應用程序,嵌入式浏覽器) 上Javascript運行比Safari慢3.3倍(或者說,Nitro引擎在Safari浏覽器是Web應用程序是3.3倍速度)。

  我們可以找到一些其他的好消息:

web應用程序的調試Remote Web Inspector 一個新的supressesIncrementalRendering的布爾屬性,改進了部分呈現機制 。 我相信,以減少加載網頁感覺,這個功能是非常有用的。 一個新的WebKitStoreWebDataForBackup info.plist的布爾功能,在這裡我們可以定義我們要存儲在本地存儲和Web SQL數據庫進行備份的地方,如在iCloud。 這個問題已經出現在iOS 5.01,現在它解決了 開發者協議的改變 似乎限制只使用本地的WebView來解析HTML和JS的了。 這很好,如果有人從蘋果可以證實這一點。 內部WebKit引擎它是唯一能夠下載並執行新的代碼的引擎,確保預期相同的應用程序行為 。 如果你不從網絡上下載的代碼您可以使用自己的引擎。 這可能打開一扇門...如提供我們自己的engine,例如,WebGL支持。

  遠程調試

  這是對Web開發人員一個巨大的變化。 iOS上Safari第一次,包括官方的Remote Web Inspector。 因此,iWebInspector或Weinre工具,將因為這個版本將變得過時。 遠程調試器可以與模擬器或通過USB連接設備一起工作。

  要啟動遠程檢查會話,你需要使用桌面Safari 6浏覽器 。 這是壞消息:你只能在Mac桌面電腦上調試你的web應用。 這是一個無聲的變化,但適用於Windows的Safari已不存在,所以它停留在5.x中 因此,只有與Mac OS計算機,您才可以在您的iOS設備開啟(至少現在正式)網絡調試會話。

  出於安全考慮,您需要先啟用Web檢查器“設置”>“Safari浏覽器”>“高級”。 新的檢查手段意味著舊的JavaScript控制台是不可用了。

   您可以啟動調試會話:

在您的iOS設備或模擬器的Safari窗口 在您的iOS設備或模擬器上安裝的chrome-less webapp程序 使用Web View本機應用程序,如Apache Cordova/ PhoneGap的應用程序。

  在談到本機應用程序,你只可以檢查,由Xcode(自己的應用程序)安裝在設備的應用程序。 因此,沒有辦法在網站的檢查iOS上的谷歌浏覽器。

   如果您正在使用Webkit Inspector 連Safari 5或Chrome,你會在Safari 6看到一個完全重新設計版本的Inspector基於Xcode的本機開發的UI。 用Inspector調式會話,您可以:

查看 HTML和CSS實時的變化 訪問您的存儲:cookies,本地存儲,會話存儲和SQL數據庫 審查Profile web應用,包括網絡請求,布局和渲染和JavaScript和事件的表現報告。 這是性能工具方面邁出的一大步。 搜索你的DOM 在一個地方查看所有的錯誤和警告 管理你的workers(線程) 管理JavaScript斷點,並確定未捕獲的異常斷點。 訪問控制台和執行JavaScript 調試JavaScript代碼 觸摸檢查:在inspector裡面有一個小手圖標,可以讓你在設備上觸摸和在inspector發現DOM元素。

  蘋果干得好,我們在iOS上等這個已經很長一段時間 。 Apache Cordova 用戶使用此功能也應該喜歡。

  其他較小的更新

蘋果公司聲稱有一個更快的JavaScript引擎 。 它似乎是真實的。 在SunSpider測試中,我在同一設備上iOS 5.1和iOS 6的JavaScript性能提高20%。 谷歌地圖在iOS 6 上不再可用,現在http://maps.google.com重定向到谷歌地圖的網站,而不是本機應用程序。 因此有一個新的URL 模式,maps,這將打開本機的新的地圖應用程序。 語法是maps:?q=<query>,query可以是搜索詞或經緯度(以逗號分隔)。 要啟動路線導航,參數是:maps:?saddr=<source>&daddr=<destination>。 XHR2:現在XMLHttpRequestProgressEvent得到支持 autocomplete屬性的輸入遵循DOM規范 來自DOM4的Mutation Observers已經實現。 您可以使用WebKitMutationObserver構造器捕獲DOM的變化 Safari不再總是對用 -webkit-transform:preserve-3d 的元素創建硬件加速層, 我們應該停止使用。 通過window.selection 的Selection API <keygen>元素 Canvas更新 :createImageData有一個參數,現在有兩個新的功能做好准備,用webkitGetImageDataHD和webkitPutImageDataHD提供高分辨率圖像 。 更新SVG處理器和事件構造函數 新的CSS viewport的有關測量:VH(viewport的高度),VW(viewport寬度)和VMIN(VW和VH之間最小) CSS3 Exclusions 和CSS Regions提供Beta 1版,但他們在最終版本中被刪除。 這是一個恥辱,雖然他們太新,還不夠成熟。 iCloud 標簽 。 您可以在所有的設備,包括Mac電腦,iPhone和iPad之間同步您的標簽。 所以,相同的URL將通過所有的設備。 要小心使用移動網絡架構!

  我們仍在等待

  有一些東西,我們仍然需要等待下一個版本,如:

索引型數據庫IndexedDB 文件系統API 性能Timing API WebRTC和getUserMedia WebGL仍然被禁用 游戲/ inmersive應用程序的方向鎖定API 集成Facebook和Twitter帳戶的原生API,所以我們可以使用當前操作系統的用戶的憑據自動,而不是迫使用戶重新登錄。

  最後的思考

  在iOS 6上的Safari是為HTML5開發調試工具邁出了一大步 ,新的API,更好的JavaScript性能。 不過,我必須說,蘋果仍然忘記了文檔更新和適當地與Web開發人員溝通。 

  

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved