移動平台前端開發是指標對高端智能手機(如Iphone、Android)做網站適配也就是WebApp,並非是針對普通手機開發Wap 2.0,所以在閱讀本篇文章以前,你需要對webkit核心的瀏覽器有一定的瞭解,需要對HTML5和CSS3有一定的瞭解。
1、首先我們來看看webkit核心中的一些私人的meta標籤,這些meta標籤在開發webapp時起到非常重要的作用
(1)<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0" name="viewport" />
(2)<meta content="yes" name="apple-mobile-web-app-capable" />
(3)<meta content="black" name="apple-mobile-web-app-status-bar-style" />
(4)<meta content="telephone=no" name="format-detection" />
第一個meta標籤表示:強制讓文檔的寬度與裝置的寬度保持1:1,並且文檔最大的寬度比例是1.0,且不允許使用者點擊螢幕放大瀏覽;尤其要注意的是content裡多個屬性的設定一定要用分號+空格來隔開,如果不規範將不會起作用。
第二個meta標籤是iphone裝置中的safari私人meta標籤,它表示:允許全螢幕模式瀏覽;
第三個meta標籤也是iphone的私人標籤,它指定的iphone中safari頂端的狀態條的樣式;
第四個meta標籤表示:告訴裝置忽略將頁面中的數字識別為電話號碼
2、如何去除Android平台中對郵箱地址的識別
看過iOS webapp API的同學都知道iOS提供了一個meta標籤:用于禁用iOS對頁面中電話號碼的自動識別。在iOS中是不自動識別郵件地址的,但在Android平台,它會自動檢測郵件地址,當使用者touch到這個郵件地址時,Android會彈出一個框提示使用者發送郵件,如果你不想Android自動識別頁面中的郵件地址,你不妨加上這樣一句meta標籤在head中
<meta content="email=no" name="format-detection" />
3、如何去除iOS和Android中的輸入URL的控制列
你的老闆或者PD或者互動設計師可能會要求你:能否讓我們的webapp更加像nativeapp,我不想讓使用者看見那個輸入url的控制列?
答案是可以做到的。我們可以利用一句簡單的javascript代碼來實現這個效果
setTimeout(scrollTo,0,0,0);
請注意,這句代碼必須放在window.onload裡才能夠正常的工作,而且你的當前文檔的內容高度必須是高於視窗的高度時,這句代碼才能有效執行。
4、如何禁止使用者旋轉裝置
我曾經也想禁止使用者旋轉裝置,也想實現像某些用戶端那樣:只能在肖像模式或景觀模式下才能正常運行。但現在我可以很負責任的告訴你:別想了!在移動版的webkit中做不到!
至少Apple webapp API已經說到了:我們為了讓使用者在safari中正常的瀏覽網頁,我們必須保證使用者的裝置處於任何一個方位時,safari都能夠正常的顯示網頁內容(也就是自適應),所以我們禁止開發人員阻止瀏覽器的orientationchange事件,看來蘋果公司的出發點是正確的,蘋果確實不是一般的蘋果。
iOS已經禁止開發人員阻止orientationchange事件,那Android呢?對不起,我沒有找到任何資料說Android禁止開發人員阻止瀏覽器orientationchange事件,但是在Android平台,確實也是阻止不了的。
5、如何檢測使用者是通過主屏啟動你的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中從來沒有添加到主屏這回事!
6、如何關閉iOS中鍵盤自動大寫
我們知道在iOS中,當虛擬鍵盤彈出時,預設情況下鍵盤是開啟首字母大寫的功能的,根據某些業務情境,可能我們需要關閉這個功能,移動版本webkit為input元素提供了autocapitalize屬性,通過指定autocapitalize=”off”來關閉鍵盤預設首字母大寫。