检测移动Chrome浏览器的数据保存功能是否启用javascript
在Android设备上的移动Chrome浏览器中,有一项名为“数据保存”的设置,可通过设置>数据保存进行访问。检测移动Chrome浏览器的数据保存功能是否启用javascript
启用时,在阅读媒体时(特别是视频),行为可能会略有不同:除了视频已静音但禁用数据保存后,禁止移动自动播放视频,而不允许自动播放。
我需要一种方法来检测数据保存是否被使用,以便我可以更改我的视频播放器行为。
我知道在http请求中发送了一个头文件:“save-data:on” 但我不知道用什么方法从javascript读取http请求头。
此处了解详情: https://developer.chrome.com/multidevice/data-compression
感谢您的任何答复。
我已经使用这个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。
请参阅http://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript访问JavaScript中的标头 – Deckerz
谢谢,但它只涉及响应头,而我的需求是在请求标题 – Guian
@Guian你曾经找到过解决方案吗? – lopsided