Flash всегда на вершине в обход браузера Android? - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть веб-сайт с простой анимацией 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 с отключенным «Мобильным представлением».

Кто-нибудь придумал эффективный обходной путь для этой проблемы?

Ваша помощь / вклад приветствуется!

Ответы [ 2 ]

0 голосов
/ 11 апреля 2016

Существуют службы, которые могут сообщить вам, является ли пользователь мобильным на основе его IP-адреса.

Извините, но я не знаю, насколько они быстры, надежны или дороги, но если вам необходимо определить, есть ли у пользователя Android, это вопрос, который стоит рассмотреть

0 голосов
/ 02 апреля 2012

Вы можете обнаружить Android только проверяя userAgent браузера в вашем JavaScript

Примерно так:

 if (navigator.userAgent.toLowerCase().indexOf("android") != -1)
 {
     // It's android
 }

Что касается самой проблемы с флэш-памятью, я не знаютак как я никогда не использую flash: P

edit

Вы также можете использовать эту технику для других пользовательских агентов (IE iPhone, iPad, safari)

edit2

Извините, я просто зашел на свой телефон Android и понял, что фактические настройки изменяют userAgent на то, что выбирает пользователь (desktop / ipad / iphone / safari).Это бесполезно, прошу прощения.

К сожалению, то, что вы спрашиваете, очень сложно.В версии для Android нет уникальных идентификаторов, которые могли бы вам помочь.А тот факт, что android подделывает userAgent, делает невозможным обнаружение, если они на мобильном или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...