Flash在安卓浏览器中始终处于领先地位

Flash always on top in Android browser workaround?

本文关键字:处于领先地位 浏览器 Flash      更新时间:2023-09-26

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

对于没有Flash的浏览器,用户会得到一个静态的背景图像,并且不会知道他们缺少了什么。然而,根据安卓浏览器中flash内容的渲染方式导致网站无法使用的已知问题,安卓用户会在所有内容之上获得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的桌面版本(我认为)。我不希望为所有Safari用户禁用Flash动画。有没有办法只为Andriod用户屏蔽它——即使他们禁用了"移动视图"?

可能的想法包括:

  • 使用JavaScript或Flash检测Flash版本。安卓系统是否使用与台式机不同的特定版本(版本号)的Flash
  • 在禁用"移动视图"的情况下阻止安卓设备使用的特定用户代理

有人为这个问题想出了有效的解决办法吗?

感谢您的帮助/意见!

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

类似这样的东西:

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

至于闪光问题本身,我不知道,因为我从来没有使用过闪光:p

编辑

你也可以将这种技术用于其他用户代理(例如iPhone、iPad、safari)

edit2

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

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

有一些服务可以根据用户的IP告诉您用户是否在移动设备上。

很抱歉,我不知道它们有多快、可靠或昂贵,但如果你必须确定用户是否在安卓系统上,这是一个考虑的途径

相关文章: