2017-04-05 96 views
3

在Android設備上的移動Chrome瀏覽器中,有一項名爲「數據保存」的設置,可通過設置>數據保存進行訪問。檢測移動Chrome瀏覽器的數據保存功能是否啓用javascript

啓用時,在閱讀媒體時(特別是視頻),行爲可能會略有不同:除了視頻已靜音但禁用數據保存後,禁止移動自動播放視頻,而不允許自動播放。

我需要一種方法來檢測數據保存是否被使用,以便我可以更改我的視頻播放器行爲。

我知道在http請求中發送了一個頭文件:「save-data:on」 但我不知道用什麼方法從javascript讀取http請求頭。

此處瞭解詳情: https://developer.chrome.com/multidevice/data-compression

感謝您的任何答覆。

+0

請參閱http://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript訪問JavaScript中的標頭 – Deckerz

+0

謝謝,但它只涉及響應頭,而我的需求是在請求標題 – Guian

+0

@Guian你曾經找到過解決方案嗎? – lopsided

回答

-1

我已經使用這個PHP檢查data-saver是或不是

/* 
 
* This is PHP Code 
 
* will not work on clicking "Run Code Snippet" 
 
* Host this code on php server as .php file 
 
*/ 
 

 
<?php 
 
header('Content-Type: application/json'); 
 
$headers = getallheaders(); 
 
$datasaver = false; 
 
foreach($headers as $key=>$val){ 
 
    if(strtolower($key) == 'save-data' && $val == 'on'){ 
 
     $datasaver = true; 
 
    } 
 
} 
 

 
$status = array('data-saver'=>$datasaver); 
 

 
echo json_encode($status); 
 

 
?>

由於網站時出現異常行爲data-saver是,有沒有辦法通過JavaScript來確定檢查。現在,我已經使用PHP,但將來,我們需要通過javascript檢查它,並且我會更新這個線程,以防將其轉換爲javascript。

-1

您可以通過查找save-data請求標頭來檢測用戶是否已在Chrome,Opera或Yandex中啓用數據保存模式。 Dean Hume給出了一個如何使用detect data saving mode的例子,但不幸的是他的例子使用了服務工作者,所以它在Opera Mini上不起作用。

Chrome Data Saver使用代理,就像其他一些Android瀏覽器一樣,例如極限模式下的Opera Mini和Android模式下的UC Browser Mini。

您還應該能夠查找X-Forwarded-For標頭以檢測是否正在使用Chrome Data Compression Proxy