У меня есть веб-сайт с простой анимацией Flash позади текст и полупрозрачные изображения в качестве фона. Я использовал swfobject для его встраивания и установил wmode opaque, чтобы он корректно отображался в большинстве браузеров.
Для браузеров без Flash пользователь получает статическое фоновое изображение и не знает, что ему ничего не хватает. Тем не менее, пользователи Android получают flash background поверх всего, что связано с известной проблемой того, как содержимое Flash отображается в браузере Android, что делает сайт непригодным для использования.
В код swfobject добавлена грубая функция javascript для просмотра кода браузера, чтобы он не загружался для любого пользовательского агента, в котором есть «Mobile»:
<script type="text/javascript">
if (navigator.userAgent.indexOf('Mobile') == -1)
{
var flashvars = {};
var params = { wmode: "opaque" };
var attributes = {};
swfobject.embedSWF("Images/Layout/center_flash.swf", "flashBg",
"1004", "502", "9", "false", flashvars, params, attributes);
}
</script>
Единственная проблема, которую я оставил, заключается в том, что пользователи Android просматривают с отключенным «Мобильным представлением», поскольку пользовательский агент притворяется настольной версией Safari (я думаю). Я не хочу отключать Flash-анимацию для всех пользователей Safari. Есть ли способ заблокировать его только для пользователей Andriod, даже если у них отключено «Мобильное представление»?
Возможные идеи включают в себя:
- определение версии Flash с помощью JavaScript или Flash. Использует ли Android конкретные версии (номера версий) Flash, которые отличаются от настольных эквивалентов?
- блокирование определенных пользовательских агентов, используемых на устройствах Android с отключенным «Мобильным представлением».
Кто-нибудь придумал эффективный обходной путь для этой проблемы?
Ваша помощь / вклад приветствуется!