2017-04-05 15 views
3

アンドロイドデバイスのモバイルクロムには、[設定]> [データ保存]からアクセスできる[データ保存]という設定があります。モバイルクロムのデータ保存機能がjavacriptで有効になっているかどうかを検出する

有効にすると、メディア、特に動画の再生時に動作が若干異なる場合があります。動画のミュートが有効になっている場合を除き、モバイル自動再生の動画は禁止されています。

データ保存が使用されているかどうかを検出してビデオプレーヤーの動作を変更できる方法が必要です。

httpリクエストで送信されたヘッダーがあることを知っています: "save-data:on" しかし、私はjavascriptからhttpリクエストヘッダーを読み取る方法がわかりません。ここ

さらに詳しい情報:すべての答えを https://developer.chrome.com/multidevice/data-compression

感謝。

+0

javascriptのヘッダーにアクセスするにはhttp://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascriptを参照してください。 – Deckerz

+0

ありがとうございますヘッダー – Guian

+0

@Guianこれまでこれに対する解決策を見つけましたか? – lopsided

答えて

-1

私はdata-saverが上にあり、それを決定するためにJavaScriptで確認する方法がないときのウェブサイトが異なった動作をしたよう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); 
 

 
?>

上であるかどうか確認するために、このPHPを使用しています。今のところ私はPHPを使用していますが、将来はjavascriptでチェックする必要があります。これをjavascriptで変換する場合はこのスレッドを更新します。

-1

save-dataリクエストヘッダーを検索することで、ユーザーがChrome、Opera、またはYandexでデータ保存モードをオンにしているかどうかを検出できます。 Dean Humeさんはdetect data saving modeの例を示していますが、残念ながら彼の例はサービスワーカーを使用しているため、Opera Miniでは動作しません。

Chromeデータセーバーは、エクストリームモードのOpera MiniやスピードモードのAndroid用のUCブラウザミニなど、いくつかの他のAndroidブラウザと同様に、プロキシを使用します。

Chrome Data Compression Proxyが使用されているかどうかを検出するには、X-Forwarded-Forヘッダーも検索する必要があります。

関連する問題