在Android浏览器中,Flash始终处于最佳状态?

时间:2012-04-02 19:41:32

标签: javascript android html css flash

我的网站有一个简单的Flash动画背后一些文字和半透明图像作为背景。我使用swfobject嵌入它并设置wmode opaque以使其在大多数浏览器中正确显示。

对于没有Flash的浏览器,用户会获得静态背景图片,而不会知道他们遗漏了任何内容。但是,Android用户可以根据已知问题获取Flash 后台,这些问题涉及如何在Android浏览器中呈现Flash内容,从而使网站无法使用。

我在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>

我留下的唯一问题是,因为用户代理假装成Safari的桌面版本(我认为),因此关闭“移动视图”浏览的Android用户。我不希望为所有Safari用户禁用Flash动画。有没有办法阻止Andriod用户使用它 - 即使他们禁用了'移动视图'?

可能的想法包括:

  • 使用JavaScript或Flash检测Flash版本。 Android是否使用Flash的特定版本(版本号)与桌面版本不同?
  • 禁用Android设备使用的特定用户代理,并禁用“移动视图”。

是否有人为此问题提出了有效的解决方法?

感谢您的帮助/意见!

2 个答案:

答案 0 :(得分:0)

您只能通过检查JavaScript中浏览器的userAgent来检测Android

这样的事情:

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

就闪光灯本身而言,我不知道因为我从不使用闪光灯:P

修改

您也可以将该技术用于其他使用者(I.E. iPhone,iPad,safari)

EDIT2

抱歉,我刚刚使用我的Android手机并意识到实际设置会将userAgent更改为用户选择的任何内容(桌面/ ipad / iphone / safari)。那不好,我道歉。

不幸的是,你所要求的是非常困难的。 android flash版本中没有唯一标识符可以为您提供任何帮助。而android欺骗userAgent的事实使得它无法检测它们是否在移动设备上。

答案 1 :(得分:0)

存在可以告诉您用户是否基于其IP在移动设备上的服务。

我很遗憾地说我不知道​​它们有多快,可靠或昂贵,但如果您必须确定用户是否在Android上,那么这是一个需要考虑的途径