Я разработал веб-сайт в Symfony2. Я использую Suncat MobileDetectBundle для определения, есть ли у пользователя мобильный или ПК. Мне нужно создать 3 отдельные версии для настольных компьютеров, смартфонов и телефонов на основе Java. У меня есть DefaultController со следующим кодом
public function indexAction()
{
$mobileDetector = $this->get('mobile_detect.mobile_detector');
if($mobileDetector->isMobile())
$render='AcmeUitBundle:Android:Default/';
else
$render='AcmeUitBundle:Default:';
//More Code goes here
}
Когда пользователь со смартфона, он отобразит шаблон в папке "Android/Default", а когда он с компьютера, отобразятся шаблоны из папки "Default".
Теперь у меня есть еще один контроллер, "JavaController", в котором у меня будет код для отображения на Java-телефонах.
Что я хочу сделать, это проверить, когда пользователь находится на Java-телефоне, в Opera mini или ucweb, затем выполняет JavaController, а когда пользователь со смартфона или рабочего стола, то выполните DefaultController
Чтобы узнать, есть ли у телефона Android, вы можете использовать:
extends \Mobile_Detect {}
if($this->is('AndroidOS')){
}
Suncat расширяет библиотеку mobile_detect, у которой есть много проверок, поскольку AndroidOS проверяет IOS и т.д., Поэтому вы можете использовать это.
Теперь я понимаю, что вы можете использовать этот indexAction и определить, является ли он андроидом с помощью этого кода:
if($mobileDetector->isMobile()){
if(mobileDetector->is('AndroidOS')){
return $this->forward('YourBundle:Java:index'); //this is your bundle name your controller name then your action name.
}
$render='AcmeUitBundle:Android:Default/';
}
else
$render='AcmeUitBundle:Default:';
//More Code goes here
}
Или используйте другое действие, которое обнаружит мобильный телефон и какая ОС затем перейдет к любому контроллеру действий, который вам нужен либо по умолчанию, либо по java