移動平臺前端開發總結(針對iphone,Android等手機)

移動平臺前端開發是指針對高端智能手機(如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”來關閉鍵盤默認首字母大寫。


轉載自:http://www.cnblogs.com/leizhenzi/archive/2011/07/23/2114963.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章