2017-09-27 16 views
0

我需要檢查用戶是否在連接到網站時使用移動設備。檢查用戶是否使用移動設備

我需要進一步製作一個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); 
    } 
} 

我在正確的軌道上?

+0

我認爲你的問題太寬,請閱讀servi ces首先工作。 moby.loader是在你發佈的答案中定義的服務,所以你必須定義那個服務,它是你的裝載器類的實例。 – Strnm

+0

好的,謝謝,我會盡量縮小它 –

+0

「我需要檢查用戶正在使用移動設備「 - 爲什麼? 「移動設備」幾乎從來都不是一個有用的信息。你真的關心什麼?顯示屏尺寸?如果屏幕是觸摸屏?如果他們的網絡連接速度很慢?在計量網絡連接上?在一個不可靠的連接?是否能夠運行.exe文件,如果他們要下載一個?還有別的嗎? – Quentin

回答

1
+0

謝謝你的幫助,我會盡力申請,明天:) –

+0

我明白了一點,這是如何工作,但「枝條渲染」它實際上做了什麼?因爲起初我真的想知道如何知道用戶是否在使用手機。所以我創建了一個事件監聽器和移動管理器。我不需要那行'$ request-> headers-> get('User-Agent')'? –

+0

如果移動管理器注入服務說它是移動的,那麼枝條渲染會選擇一個不同的模板。你如何判斷它是否是移動的,取決於你,你還可以在你的事件監聽器上使用User-Agent。在這種情況下,他們使用移動管理器來解決這個問題。 – Strnm

相關問題