如何检查移动Chrome浏览器中是否启用了数据保护程序?

时间:2017-06-28 14:50:39

标签: javascript html google-chrome chrome-datasaver

在移动Chrome浏览器中启用“数据保护程序”选项时,网站的行为会有所不同。确定是否使用JavaScript启用Data Saver的最佳方法是什么。

3 个答案:

答案 0 :(得分:4)

现在official documentation is saying到2018年,您可以像这样检测JS中的数据保存选项:

if ("connection" in navigator) {
    if (navigator.connection.saveData === true) {
        // Implement data saving operations here.
    }
}

答案 1 :(得分:1)

来自FAQ的

  

我是否可以检测用户是否已启用数据压缩代理?

     

是的,有点儿。自Chrome 49起(2016年2月2日测试版,预计稳定日期   3月下旬)当用户在Chrome中启用了数据保护功能时   Chrome会为每个HTTP添加一个值为“on”的保存数据HTTP标头   请求。关闭此功能时,HTTP标头将不存在。   使用它作为用户意识到的意图信号   他们正在使用的数据量而不是他们的连接   通过数据压缩代理。例如,HTTP标头将是   当用户通过HTTPS访问站点时设置,即使是安全连接   不会通过数据压缩代理传递。

答案 2 :(得分:1)

正如常见问题解答中所述,我尝试扫描标题列表并检查Save-Data参数是否存在。

我正在关注移动Chrome中的标题,

List of Headers

通过扫描此数据,如果有Save-Data标头,我们可以假设Data Saveron



/* 
* 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);

?>
&#13;
&#13;
&#13;