我的网站有一个简单的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用户使用它 - 即使他们禁用了'移动视图'?
可能的想法包括:
是否有人为此问题提出了有效的解决方法?
感谢您的帮助/意见!
答案 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上,那么这是一个需要考虑的途径