3

携帯電話やハンドヘルドデバイスで3Gおよび2G接続を検出する方法はありますか?

たとえば、ユーザーが3Gを使用している場合はハイエンドのウェブサイトを配信し、ユーザーが2Gを使用している場合は高度に最適化されたバージョンを配信します。

4

2 に答える 2

3

Android 2.2+ には、そのための JS オブジェクトがあります。

接続タイプに基づいて、CSS で使用するクラスを書き出すことができます。しかし、私の知る限り、モバイル Web サイト用の iOS では利用できません。

var connection, connectionSpeed, htmlNode, htmlClass;
connection = navigator.connection || {"type":"0"}; // fallback

switch(connection.type) {
  case connection.CELL_3G: connectionSpeed = "mediumbandwidth"; break;
  case connection.CELL_2G: connectionSpeed = "lowbandwidth"; break;
  default: connectionSpeed = 'highbandwidth';
}

/* set the connection speed on the html element
   i.e. <html class="lowbandwidth">
*/
htmlNode = document.body.parentNode;
htmlClass = htmlNode.getAttribute("class") || "";
htmlNode.setAttribute("class", htmlClass + " " + connectionSpeed);

コードは、このプレゼンテーションのスライド 24 のものです:
http://davidbcalhoun.com/present/mobile-performance/

于 2011-11-02T11:15:59.477 に答える
0

一部のネットワークは、接続タイプを http ヘッダーとして送信します。

あなたの最善の策は、ユーザーが接続したときに速度テストを行い、クライアントに Cookie として保存しようとすることです

于 2011-08-02T21:36:52.287 に答える