2013-01-06 37 views
0

對於我的網站,我也想整合移動版本。Codeigniter結合移動和普通網站

我不會使用響應式設計,因爲我不確定最終在移動版本上是否需要使用常規站點中的所有內容。

所以我想將移動版本集成到我當前的項目中,因爲我需要模型和大部分控制器。所以基本上大部分資源都是一樣的。

我不覺得有必要在第二個應用程序或其他東西中重寫所有的控制器。

只需檢查我的控制器是否它是一個移動設備,每次我加載視圖似乎並不是我最優雅的解決方案。

我們也在開發一個API(用於未來的移動應用程序和這樣的東西),它會是一個解決方案,創建一個獨立的應用程序,並通過API做所有的溝通?

任何提示或想法如何以有效的方式創建此?

謝謝!

回答

0

您可以使用用戶代理庫,它提供了幾種方法來處理移動請求,例如:

$this->agent->is_mobile(); 

你可以用這個庫檢查您的訪客用戶代理,然後加載正確的觀點。

更多信息:http://ellislab.com/codeigniter/user-guide/libraries/user_agent.html

+0

我知道如何跟蹤用戶是否在移動設備上。 但是這意味着我必須在每次加載一個視圖到我的所有控制器中進行檢查。我想知道是否有一個更優雅的方式來做到這一點。 就像主控制器(默認)一樣,檢查它是否是移動設備,並根據結果將它們重定向到移動或桌面版本。 而且我也知道如何編碼選擇的東西,問題是我想知道如何在移動部分重用我的控制器和模型。 – Maarten

+0

如果您選擇以這種方式佈局應用程序,則可以使用主控制器,然後您可以檢查是否有移動設備,並從那裏重定向程序流。另一種方法是將值加載到配置文件中,然後從中檢索它,而不是每次調用is_mobile()方法。全部取決於您在整個程序流程中需要了解的頻率。你的模型應該非常相似,但你可能想傳遞一個is_mobile參數來改變返回的數據。總之,m4t1t0告訴你如何做到這一點,但是如何將它付諸實踐取決於你的需求 – WebweaverD