移動平臺前端開發(fā)是指針對高端智能手機(jī)(如Iphone、Android)做站點(diǎn)適配也就是WebApp,并非是針對普通手機(jī)開發(fā)Wap 2.0,所以在閱讀本篇文章以前,你需要對webkit內(nèi)核的瀏覽器有一定的了解,需要對HTML5和CSS3有一定的了解。 1、首先我們來看看webkit內(nèi)核中的一些私有的meta標(biāo)簽,這些meta標(biāo)簽在開發(fā)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標(biāo)簽表示:強(qiáng)制讓文檔的寬度與設(shè)備的寬度保持1:1,并且文檔最大的寬度比例是1.0,且不允許用戶點(diǎn)擊屏幕放大瀏覽;尤其要注意的是content里多個屬性的設(shè)置一定要用分號+空格來隔開,如果不規(guī)范將不會起作用。 第二個meta標(biāo)簽是iphone設(shè)備中的safari私有meta標(biāo)簽,它表示:允許全屏模式瀏覽; 第三個meta標(biāo)簽也是iphone的私有標(biāo)簽,它指定的iphone中safari頂端的狀態(tài)條的樣式; 第四個meta標(biāo)簽表示:告訴設(shè)備忽略將頁面中的數(shù)字識別為電話號碼 2、如何去除Android平臺中對郵箱地址的識別 看過iOS webapp API的同學(xué)都知道iOS提供了一個meta標(biāo)簽:用于禁用iOS對頁面中電話號碼的自動識別。在iOS中是不自動識別郵件地址的,但在Android平臺,它會自動檢測郵件地址,當(dāng)用戶touch到這個郵件地址時,Android會彈出一個框提示用戶發(fā)送郵件,如果你不想Android自動識別頁面中的郵件地址,你不妨加上這樣一句meta標(biāo)簽在head中 <meta content="email=no" name="format-detection" /> 3、如何去除iOS和Android中的輸入URL的控件條 你的老板或者PD或者交互設(shè)計(jì)師可能會要求你:能否讓我們的webapp更加像nativeapp,我不想讓用戶看見那個輸入url的控件條? 答案是可以做到的。我們可以利用一句簡單的javascript代碼來實(shí)現(xiàn)這個效果 setTimeout(scrollTo,0,0,0); 請注意,這句代碼必須放在window.onload里才能夠正常的工作,而且你的當(dāng)前文檔的內(nèi)容高度必須是高于窗口的高度時,這句代碼才能有效的執(zhí)行。 4、如何禁止用戶旋轉(zhuǎn)設(shè)備 我曾經(jīng)也想禁止用戶旋轉(zhuǎn)設(shè)備,也想實(shí)現(xiàn)像某些客戶端那樣:只能在肖像模式或景觀模式下才能正常運(yùn)行。但現(xiàn)在我可以很負(fù)責(zé)任的告訴你:別想了!在移動版的webkit中做不到! 至少Apple webapp API已經(jīng)說到了:我們?yōu)榱俗層脩粼趕afari中正常的瀏覽網(wǎng)頁,我們必須保證用戶的設(shè)備處于任何一個方位時,safari都能夠正常的顯示網(wǎng)頁內(nèi)容(也就是自適應(yīng)),所以我們禁止開發(fā)者阻止瀏覽器的orientationchange事件,看來蘋果公司的出發(fā)點(diǎn)是正確的,蘋果確實(shí)不是一般的蘋果。 iOS已經(jīng)禁止開發(fā)者阻止orientationchange事件,那Android呢?對不起,我沒有找到任何資料說Android禁止開發(fā)者阻止瀏覽器orientationchange事件,但是在Android平臺,確實(shí)也是阻止不了的。 5、如何檢測用戶是通過主屏啟動你的webapp 看過Apple webapp API的同學(xué)都知道iOS為safari提供了一個將當(dāng)前頁面添加主屏的功能,按下iphone\ipod\ipod touch底部工具中的小加號,或者ipad頂部左側(cè)的小加號,就可以將當(dāng)前的頁面添加到設(shè)備的主屏,在設(shè)備的主屏?xí)詣釉黾右粋€當(dāng)前頁面的啟動圖標(biāo),點(diǎn)擊該啟動圖標(biāo)就可以快速、便捷的啟動你的webapp。從主屏啟動的webapp和瀏覽器訪問你的webapp最大的區(qū)別是它清除了瀏覽器上方和下方的工具條,這樣你的webapp就更加像是nativeapp了,還有一個區(qū)別是window對像中的navigator子對象的一個standalone屬性。iOS中瀏覽器直接訪問站點(diǎn)時,navigator.standalone為false,從主屏啟動webapp時,navigator.standalone為true, 我們可以通過navigator.standalone這個屬性獲知用戶當(dāng)前是否是從主屏訪問我們的webapp的。 在Android中從來沒有添加到主屏這回事! 6、如何關(guān)閉iOS中鍵盤自動大寫 我們知道在iOS中,當(dāng)虛擬鍵盤彈出時,默認(rèn)情況下鍵盤是開啟首字母大寫的功能的,根據(jù)某些業(yè)務(wù)場景,可能我們需要關(guān)閉這個功能,移動版本webkit為input元素提供了autocapitalize屬性,通過指定autocapitalize=”off”來關(guān)閉鍵盤默認(rèn)首字母大寫。 7、如何關(guān)閉Android/iPhone瀏覽器自動識別數(shù)字為電話號碼 iPhone上的Safari(還有些webkit android手機(jī)瀏覽器)會自動對看起來像是電話號碼的數(shù)字串(包括已經(jīng)加入連字符或括號格式化過的)添加電話鏈接,點(diǎn)擊之后會詢問用戶是否想要撥打該號碼。如果你不希望開啟這個自動識別,可以將它關(guān)閉: <meta name="format-detection" content="telephone=no" /> 如果你關(guān)閉自動識別后,又希望某些電話號碼能夠鏈接到iPhone的撥號功能,那么可以通過這樣來聲明電話鏈接: <a href="tel:12345678910">12345678910</a> |
|