隱藏iPhone瀏覽器上的Address Bar

隱藏iPhone瀏覽器上的Address Bar

設計iPhone程式是大家很希望從中可以獲利的機會,設計Mobile Web其實也是另一個市場,

因為設計出來的Mobile Web其實可以較製作Application來的更易跨不同的手持裝置,不管你

是Windows Mobile(Phone)、iPhone、Android、Symbain S60或Opera Mobile,他們支援Web的

標準都較傳統一些比較低階手機只有支援WAP來的更高,也讓我們可以使用標準的XHTML

、jQuery(或JavaScript)、CSS 2(部分CSS 3)就可以讓用戶感受相同的使用的經驗。

 

然而,隨著不斷地新的手持系統版本推出更新之後呢,其實支援的標準也就愈來愈接近一

般桌上型瀏覽器的程度,當然我指的是不包括其他支援Plug-in的其他第三方程式。這樣的

情形也會影響我們設計過程裡要去考慮使用的技術,所以其實Mobile Web的開發其實是充

滿著很多的挑戰的。

 

接下來要談論的是此篇的內容,其實主要強調的點在於,由於iPhone的瀏覽器:Safari Mobile。

它不像Opera Mobile、Android或是IE Mobile會自動在網頁讀取完成後,把Address Bar給隱藏起來,

但其實這樣的說法有點不太對,其實iPhone還是會幫你把Address Bar收起來,但是前提是你目前

瀏覽網頁的內容不是在整個頁面的最Top。但這樣對於如果設計希望把Address Bar給隱藏起來,

提供更多內容於一個視窗大小可以顯示時,其實就會有點不方便了。

 

因此,我參考了在Refences中所提及的二篇內容,其實他的做法都是類似上述所提到的:

將瀏覽畫面移動到不是整個網頁內容的最Top。這樣就可以讓Address Bar好像被隱藏起來一樣。

但必需要強調的是這樣的顯示結果,跟其他瀏覽器所提供的功能還是有所差異的。

 

以下是程式碼:

   1: <script type="text/javascript">
   2:   addEventListener('load', function() {
   3:     var tUserAgent = navigator.userAgent;
   4:     if (tUserAgent.indexOf("iPhone") != -1) {
   5:         setTimeout(HideUrlBar(), 100);
   6:     }
   7:   }        
   8:     
   9:   function HideUrlBar() {
  10:     window.scrollTo(0, 1);    
  11:   }
  12: </script>

此段程式不難理解,它透過註冊當整個Document進入Load的時候,先識別目前使用的瀏覽器

中的UserAgent是否為"iPhone",如果是的話,就去呼叫 SetTimeout()的方法,在每100毫秒的時

候進入 HidUrlBar()的方法,透過 window.scrollTo的方式移動到 Height =1的位置。剛好可以移到

超過Address Bar的範圍。

 

此篇文章只是做個筆記。內容加上一些自己對開發Mobile Web的心得。

分享給大家做個參考。

 

References:

How to Hide the Address Bar in MobileSafari

Use JavaScript to Hide the iPhone Safari Toolbar/Addressbar

http://snipplr.com/view/8784/hide-iphone-address-bar-once-page-is-loaded/

 

Dotblogs 的標籤: