检查用户是否使用移动设备
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
我需要检查用户在连接到网站时是否使用移动设备。
我需要进一步制作一个 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