2010-08-17 121 views
3

什麼是你的技術,使用手機與asp.net,我知道如何檢測手機,但我很難找到一種很好的方式來顯示我的網頁在移動設備上。移動聊天室技術

我正在考慮做一個多視圖並在移動視圖時顯示移動視圖,但是,除非我們做同樣的事情,否則那不適用於我們的母版頁,我寧願只將頁面重定向到移動設備版。

但我想這會自動發生,不想將代碼添加到每個頁面,我已經使用HttpModule,但它會導致網站中的每個對象都使用它,只需要在aspx頁面上所以我只是使用了一個用戶控件,它放在主頁面的頂部。

我還在包含每個移動設備的文件夾的樹中添加了一個名爲mobile的文件夾,因此如果他們轉到〜/ Account/Login.aspx,它會重定向到〜/ Account/Mobile/IPhone/Login.aspx,但我必須排除移動設備中的母版頁或它將處於無限循環:)

我喜歡MVC的方式,他們有一個自定義的ViewEngine,只是重定向,但我不能去MVC,因爲一些我公司要求的ASP.NET控件。

想法?

+0

你打算支持哪種手機?例如,在iPhone上工作的頁面並不一定適用於索尼愛立信K700。 另外請注意,人們可能正在使用Opera Mini等瀏覽器。 Opera甚至可以在真正基本的移動設備上工作,並使用代理服務器,以便它能夠以一種運行良好的方式重新格式化頁面。 – James 2010-08-18 14:49:06

+0

規劃爲這兩個,我使用的想法將使用多個手機,因爲我可以使用每種類型的電話的文件夾..「〜/帳戶/手機/黑莓/登錄.aspx」..我正在工作的另一種技術與,使用自定義文件擴展名和HttpModule,而不是使用目錄,如果我去Login.aspx和IM移動,它會去Login.mobile,但呈現爲aspx頁的頁面。不幸的是,這不會支持多個電話。 – jaekie 2010-08-18 17:23:38

回答

1

這很大程度上取決於特定網站以及促使您考慮擁有移動版本網站的原因。你有多少內容不適合移動瀏覽器(例如Flash,AJAX)?您提到的這些自定義控件有多複雜?

就我個人而言,我認爲最好嘗試設計您的主站點,以便在最近的智能手機(例如iphone,Android)上瀏覽的人們兼容,因爲他們正在變得非常流行並且越來越有能力。這些手機具有通常基於WebKit的瀏覽器,因此在Chrome或Safari中進行測試可以讓您至少了解您的網頁效果如何。

如果有必要,那麼你可以使用略有不同的樣式表的桌面和手機。通過隱藏不重要的內容和簡化導航,可以使頁面更易於訪問。

ASP .NET實際上內置了一個複雜的設備過濾系統,因此您可以根據當前瀏覽器更改頁面的部分,甚至是要使用的母版頁。見這裏:http://ryanfarley.com/blog/archive/2008/08/14/more-on-device-filtering-with-asp.net-server-control-properties.aspx。你只需要確保你的瀏覽器定義是最新的。

避免像GridViews這樣複雜的ASP .NET控件,因爲您對HTML和CSS的控制較少。諸如ListView之類的控件更加靈活。

某些功能(如AJAX)在某些設備上可能有點麻煩,特別是在使用AJAX UpdatePanel時。您可以使用模擬器來測試這些場景。或者,您可以在移動設備上禁用這些功能。這是假設你甚至使用它們。

爲了適應低端設備,您可以有一個單獨的移動站點並行運行。要創建移動頁面,您需要繼承System.Web.UI.MobileControls.MobilePage而不是普通的Page類。 W3Schools有一些有用的信息:http://www.w3schools.com/dotnetmobile/control_mobilepage.asp。請注意,移動網絡表單現在已被棄用,但它不被認爲是前進的方向。

如果你打算並行運行兩個或多個站點,並且你有兩個複雜的邏輯需要,那麼你可以創建一個類庫來保存共享功能。它會切斷一些代碼重複。

爲了避免在重定向到移動版本時出現無限循環,只需檢查當前網址以查看它是否包含移動網站的基本網址。在主頁上做重定向可能是最簡單的,但在點擊每個頁面上的某個地方會有一個連接到移動版本的鏈接。

總的來說這是一個非常複雜的主題,所以也許考慮拿到一本合適的書。