【问题标题】:Codeigniter combine mobile and normal siteCodeigniter 结合移动站点和普通站点
【发布时间】:2013-01-06 11:58:25
【问题描述】:

对于我的网站,我还想集成一个移动版本。

我不会使用响应式设计,因为我不确定最终移动版是否需要常规网站的所有内容。

所以我想将移动版本集成到我当前的项目中,因为我需要模型和大部分控制器。所以基本上大部分资源都是一样的。

我觉得没有必要在第二个应用程序中重写我的所有控制器。

每次加载视图时只需检查我的控制器是否是移动设备,这对我来说似乎不是最优雅的解决方案。

我们还在开发一个 API(用于未来的移动应用等),它会是创建独立应用并通过 API 进行所有通信的解决方案吗?

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

谢谢!

【问题讨论】:

    标签: php api codeigniter mobile


    【解决方案1】:

    您可以使用用户代理库,它提供了几种处理移动请求的方法,例如:

    $this->agent->is_mobile();
    

    您可以使用此库检查您的访问者用户代理,然后加载正确的视图。

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

    【讨论】:

    • 我知道如何跟踪用户是否在移动设备上。但这意味着我每次在所有控制器中加载视图时都必须进行检查。我想知道是否有更优雅的方式来做到这一点。类似于主控制器(默认)来检查它是否是移动设备,并根据结果将它们重定向到移动或桌面版本。而且我也知道如何编写选择的东西,问题是我想知道如何在移动部分重用我的控制器和模型。
    • 如果您选择这样布局您的应用程序,则可以使用主控制器,然后您可以检查一次是否移动并从那里重定向程序流。另一种方法是将值加载到配置文件中,然后从那里检索它,而不是每次都调用 is_mobile() 方法。这一切都取决于您在整个程序流程中需要了解的频率。您的模型应该非常相似,但您可能希望向它们传递一个 is_mobile 参数,该参数会更改返回的数据。简而言之,m4t1t0 已经告诉你如何去做,但你如何将它付诸实践取决于你的需求
    猜你喜欢
    • 2013-12-02
    • 2013-03-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多