检查用户是否使用移动设备

Check if user is using mobile device

我需要检查用户在连接到网站时是否使用移动设备。

我需要进一步制作一个 eventListener。

Symfony doc 中有一个段落,实际上你可以检查这个 $request->headers->get('User-Agent')

有简单的方法吗?

--- 编辑 ---

这是我到目前为止编写的代码。我可能不知道如何将它传递给控制器​​?

服务

  template.loader:
      class: ST\BackofficeBundle\EventListener\DeviceListener
      tags:
        - { name: kernel.event_listener, event: kernel.view, method: onKernelView }

监听器

    class DeviceListener
{
    public function onKernelView(getResponseEvent $event)
    {
       $event->getRequest()->getSession()->set('mobile', true);

       $response = new Response();
       $response->setContent($event);

       $event->setResponse($response);
    }
}

我走在正确的轨道上吗?

您可以查看 https://github.com/kbond/ZenstruckMobileBundle 代码

它在这里创建了一个 EventListener: https://github.com/kbond/ZenstruckMobileBundle/blob/master/EventListener/RequestListener.php

并在此基础上覆盖此处的树枝渲染: https://github.com/kbond/ZenstruckMobileBundle/blob/master/Twig/TwigEngine.php

两件事都通过 https://github.com/kbond/ZenstruckMobileBundle/blob/master/Manager/MobileManager.php