2012-04-02 88 views
0

我有一個網站,用一個簡單的Flash動畫,後面的一些文字和半透明圖片作爲背景。我已經使用swfobject來嵌入它,並設置wmode不透明,以使其在大多數瀏覽器中正確顯示。在Android瀏覽器解決方案中,Flash始終處於頂端?

對於沒有Flash的瀏覽器,用戶會得到一個靜態的背景圖片,而不知道他們錯過了什麼。然而,根據已知問題,Android用戶在Flash瀏覽器中呈現Flash內容的方式使得網站無法使用,因此Android用戶可以獲得閃回背景

我添加了一個粗瀏覽器嗅探javascript函數到SWFObject的代碼,以防止它裝載任何用戶代理均可進行「移動」在它:

<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的桌面版(我認爲)時,「Mobile View」瀏覽功能關閉。我不希望爲所有Safari用戶禁用Flash動畫。是否有阻止Andriod用戶的方法 - 即使他們禁用了「移動視圖」?

可能的想法包括:

  • 檢測Flash版本使用JavaScript或Flash。 Android是否使用不同於桌面版的Flash的特定版本(版本號)?
  • 禁止禁用「移動視圖」的Android設備使用的特定用戶代理。

有沒有人想出瞭解決這個問題的有效方法?

我們感謝您的幫助/輸入!

+0

更多關於這個問題的一個途徑我的[博客](http://peterchinkin.tumblr.com/post/21268904763/flash-on-android-on-top-bug)。 – 2012-04-30 09:36:43

回答

0

只能通過檢查瀏覽器的userAgent在JavaScript

事情是這樣的檢測機器人:

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

至於閃光燈問題本身,我不知道,因爲我從來沒有使用閃光燈:P

編輯

您還可以使用其他useragents該技術( I.E.的iPhone,iPad的Safari)

EDIT2

對不起,我只是去我的Android手機上,實現了實際的設置更改的userAgent到任何用戶選秀權(桌面/ iPad/iPhone的/ Safari瀏覽器)。那不好,我道歉。

不幸的是,你所要求的是非常困難的。 Android版本中沒有唯一的標識符可以爲您提供任何幫助。而且android欺騙userAgent的事實使得它不可能檢測到它們是否在移動設備上。

+0

感謝您的建議,但我的手機的android userAgent是「Mozilla/5.0(Macintosh; U; Intel Mac OS X 10_6_3; zh-cn)AppleWebKit/533.16(KHTML,如Gecko)Version/5.0 Safari/533.16」 '移動視圖'已禁用。我認爲這取決於您擁有的手機和操作系統版本。有沒有什麼可以孤立這樣的用戶? – 2012-04-02 20:00:58

+0

@PeterChinkin我很抱歉,據我所知,沒有辦法確定Flash是否是手機版本,或者不是。 (唯一的方法是通過userAgent檢測,這是android的瀏覽器在桌面模式下進行欺騙)。在userAgent插件中沒有唯一標識符將Flash識別爲移動版本(AFAIK)。我建議轉發adobe支持一封電子郵件,看看我錯了,因爲我不經常使用flash。 – bbedward 2012-04-02 20:07:11

+0

@PeterChinkin通過JavaScript,你無法訪問android操作系統調用來確定它是否是android。所以你嚴格限制在useragent信息。 – bbedward 2012-04-02 20:14:44

0

有些服務可以根據用戶的IP來告訴你用戶是否在移動設備上。

我很抱歉地說,我不知道如何快速,可靠,或者昂貴的他們,但如果你必須確定一個用戶是否是在Android上,這是考慮

+0

對不起,我剛看到這個問題有多大,但我想我會留下我的答案,以防有人尋找它... – 2016-04-11 18:09:15

相關問題