• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/web/useragent/detector.php
  • Класс: BitrixMainWebUserAgentDetector
  • Вызов: Detector::getKnownAgent
protected function getKnownAgent(?string $userAgent)
{
	if ($userAgent !== null)
	{
		if (strpos($userAgent, 'Bitrix24.Disk') !== false)
		{
			if (strpos($userAgent, 'Windows') !== false)
			{
				return new Browser('Bitrix24.Disk', 'Windows', DeviceType::DESKTOP);
			}
			return new Browser('Bitrix24.Disk', 'macOS', DeviceType::DESKTOP);
		}

		if (strpos($userAgent, 'BitrixDesktop') !== false)
		{
			if (strpos($userAgent, 'Windows') !== false)
			{
				return new Browser('Bitrix24.Desktop', 'Windows', DeviceType::DESKTOP);
			}
			if (strpos($userAgent, 'Mac OS') !== false)
			{
				return new Browser('Bitrix24.Desktop', 'macOS', DeviceType::DESKTOP);
			}
			return new Browser('Bitrix24.Desktop', 'Linux', DeviceType::DESKTOP);
		}

		if (strpos($userAgent, 'BitrixMobile') !== false || strpos($userAgent, 'Bitrix24/') !== false)
		{
			if (strpos($userAgent, 'iPhone') !== false || strpos($userAgent, 'iPad') !== false || strpos($userAgent, 'Darwin') !== false)
			{
				$device = (strpos($userAgent, 'iPad') !== false ? DeviceType::TABLET : DeviceType::MOBILE_PHONE);
				return new Browser('Bitrix24.Mobile', 'iOS', $device);
			}

			$device = (strpos($userAgent, 'Tablet') !== false ? DeviceType::TABLET : DeviceType::MOBILE_PHONE);
			return new Browser('Bitrix24.Mobile', 'Android', $device);
		}
	}
	return null;
}