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