检测移动Chrome浏览器的数据保存功能是否启用javascript

问题描述:

在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

我已经使用这个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。

您可以通过查找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