2013-11-20 26 views
0

有人可以爲我提供中興通訊開放設備的用戶代理字符串(navigator.userAgent)嗎?我需要它在具有256 MB RAM的設備上禁用我的應用程序中內存豐富的功能。目前沒有辦法獲得有關可用RAM的信息,我無法以較少的內存消耗來完成這些功能。 (512 MB RAM,他們將工作)中興通訊開放userAgent字符串

現在我有那些的User-Agent串:

ALCATEL ONE TOUCH消防

Mozilla/5.0 (Mobile; ALCATELOneTouch4012X; rv:18.1) Gecko/18.1 Firefox/18.1

GeeksPhone基翁

Mozilla/5.0 (Mobile; rv:18.1) Gecko/18.1 Firefox/18.1

個問候,安德烈

回答

2

簡短的回答:

Mozilla/5.0 (Mobile; ZTEOPEN; rv:18.1) Gecko/18.1 Firefox/18.1 

Source

另外,如果你想知道LG Fireweb UA字符串,它是:

Mozilla/5.0 (Mobile; LG-D300; rv:18.1) Gecko/18.1 Firefox/18.1 

龍答案

的基翁UA字符串實際上是Mozilla的推薦UA字符串所有的Firefox OS智能手機。請參閱gecko user agent string reference,這意味着您可以爲將來使用大量RAM的設備提供簡化版本的網站,使用推薦字符串的設備並非Geeksphone Keon(運行Firefox OS的Nexus 4)。

這就是使用用戶代理嗅探的麻煩。應該儘可能地避免這種做法,因爲它很脆弱,因爲你可能已經知道了......依靠UA嗅探而不是特徵檢測不是一種好的做法。

有一些方法可以測試你的頁面的性能,而不用去猜測你的訪問者使用哪個設備/平臺/版本,RequestAnimationFrame可以作爲一個替代方法來探測你的應用的實際響應速度,不知道這對你的用例是否足夠。

+0

喜法布里西奧,感謝你長的答案! :)我知道用戶代理嗅探不是很好的做法。我正在爲FFOS構建一個圖像編輯器應用程序。它使用一些沉重的webgl着色器,在具有低內存(256 MB)的設備上,它們將無法以全分辨率渲染最終圖像(一件式)。我知道我可以實現一些模式/級聯渲染來填補這個問題。但現在我只會在應用商店中獲得它。所以在低內存設備上,我想限制輸出分辨率爲1600px。 –

+0

@AndréFiedler您需要從設備獲取哪些信息,以瞭解它是否可以在用戶代理嗅探猜測之外支持您的應用。 – karlcow

+0

可用RAM的數量 –

2

Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0 

與我的中興打開運行1.0.1.0。

0

我得到了一個hint,我可以用FileReader API讀取/proc/meminfo以獲取所有設備上的詳細記憶信息。必須稍後檢查。 :)

編輯:

不能讓它工作。我想這無效之一:

var file = new File('/proc/meminfo'); 
var reader = new FileReader(); 
reader.onload = function(evt) { 
    alert(evt.target.result); 
}; 
reader.readAsText(file); 

然後我嘗試這一個:

var req = new XMLHttpRequest(); 
req.open('GET', '/proc/meminfo', true); 
req.onreadystatechange = function (evt) { 
    if (req.readyState == 4) { 
     alert(req.responseText); 
    } 
}; 
req.send(null); 

和我一起"systemXHR": {}許可試了一下:

var req = new XMLHttpRequest({ 
    mozSystem: true 
}); 
req.open('GET', '/proc/meminfo', true); 
req.onreadystatechange = function (evt) { 
    if (req.readyState == 4) { 
     alert(req.responseText); 
    } 
}; 
req.send(null); 

沒有做的工作。

1

我爲WhichBrowser - 用戶代理嗅探庫維護Firefox OS設備的列表。目前,它包括用於Firefox OS以下設備標識符:

DeviceModels::$FIREFOXOS_MODELS = array(
    'ALCATEL ONE TOUCH 4012A'     => array('Alcatel', 'One Touch Fire'), 
    'ALCATELOneTouch4012A'      => array('Alcatel', 'One Touch Fire'), 
    'ALCATELOneTouch4012X'      => array('Alcatel', 'One Touch Fire'), 
    'ALCATELOneTouch4019X'      => array('Alcatel', 'One Touch Fire C'), 
    'LG-D300'         => array('LG', 'Fireweb'), 
    'ZTEOPEN'         => array('ZTE', 'Open'), 
    'OpenC'          => array('ZTE', 'Open C'), 
); 

一個向上的最新版本可以在這裏找到: https://github.com/NielsLeenheer/WhichBrowser/blob/master/data/models-firefoxos.php