21

モバイル デバイス用の代替バージョンのウェブサイトをご用意しました。私たちが提供するコンテンツは異なり、うまく機能します。

提供するバージョンを検出する最良の方法は何ですか。すべてのモバイル デバイスのリストがあるわけではないため、ユーザー エージェント ヘッダーを使用するのは、何かを見落とす可能性があるため注意が必要です。

デバイスの画面幅を使用することを考えましたが、モバイル デバイスが JavaScript をサポートしていない場合はどうなりますか。これをどのように嗅ぐのですか?

4

10 に答える 10

24

要求ヘッダーからクライアント デバイスを認識するデバイス記述データベース ( WURFLなど) を使用できます。次に、そのデータベースにクエリを実行して、別のサイトにリダイレクトするかどうかを決定する前に、デバイスがサイトを処理できるか (JavaScript をサポートしているか、画面が十分に大きいかなど) を判断できます。

あなたの環境については言及していませんが、WURFL は Java と PHP の API を提供しています。API が提供されていない場合でも WURFL を使用できますが、XML データを自分で解析および処理する必要があります。

于 2009-07-13T10:04:40.407 に答える
8

media = "handheld"は、デスクトップブラウザのふりをするiphoneのような最新のスマートフォンでは機能しません(画面メディアタイプを使用します)。

http://detectmobilebrowser.com/ 無料のオープンソースで、javascript、php、asp.net、rubyなどの多くの言語で利用できる包括的なモバイルユーザーエージェントチェッカーがあります。

于 2010-10-28T16:24:59.547 に答える
6

JavaScript を使用してモバイル サイトにリダイレクトすることを検討している場合、WURFL には、JavaScript を使用してサーバー側の検出を行うためのソリューションもあることに気付きました。

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

次のような JSON オブジェクトが残ります。

{
     "complete_device_name":"Apple iPhone 6",
     "is_mobile":true,
     "form_factor":"Smartphone"
}

次に、これを使用できます。

if (WURFL.is_mobile === true) {
    window.location.replace("http://stackoverflow.com");
}
于 2014-04-18T14:22:15.083 に答える
2

これをヘッダーに入れるだけです:

<script type="text/javascript">
 <!--
  if (screen.width <= 700) {
  window.location = "http://www.mobile-site.com";
  }
 //-->
</script>

ほぼすべてのコンピューター画面が 700px のしきい値を超えていますが、この値は変更できます。700px を超える携帯電話やタブレットは存在しないため (少なくとも私は知りません)、すべてのモバイル デバイスがモバイル サイトにリダイレクトされます。

于 2013-01-16T16:25:57.880 に答える
2

ユーザーが自分の JavaScript を有効にしているかどうかを検出するための適切でエレガントな方法はないと思います。

IMO、ユーザーエージェントをリストするのが最善です。これはユーザーエージェントのリストです。これは非常に完全なようです(残念ながらフランス語で)。

于 2009-07-13T10:02:58.103 に答える
2

WURFLに代わるものは、以下を検出するための PHP クラスであるMobile Detectです。

  • タブレット
  • モバイル
  • iOS
  • アンドロイド
  • ブラウザ
  • そして、はるかに

したがって、WURFLが必要なことを行わない場合は、いつでもこれを確認できます。

于 2014-04-15T09:08:49.403 に答える
0

単純:

<link rel="alternate" media="handheld" href="WEBSITE HERE">

それを頭の部分に入れます。

于 2009-10-09T19:15:32.540 に答える
0

デバイスが JS をサポートしていない場合は、サーバー側のソリューションを検討することをお勧めします。WURFL API はその方向に役立ちます。

この種のアプローチの問題 (リバース プロキシがページをキャッシュし、モバイル バージョンにリダイレクトさせないなど) を回避したい場合や、最近のほとんどすべてのデバイスが JS をサポートしていることを知って、迅速な解決策が必要な場合があります。

このため、モバイル デバイスからアクセスしている場合に、ブラウザーのユーザー エージェントを検出してサイトのモバイル バージョンにリダイレクトする「redirection_mobile.js」という JS スクリプトを作成しました。

モバイル デバイスからデスクトップ バージョンにリダイレクトしたい場合 (「メイン サイトに移動」リンクなど) は、スクリプトがそれを処理し、セッションが終了すると、モバイル バージョンに再びアクセスします。 .

github のソース コードはhttp://github.com/sebarmeli/JS-Redirection-Mobile-Siteにあります。詳細については、次の記事を参照してください。

http://blog.sebarmeli.com/2010/11/02/how-to-redirect-your-site-to-a-mobile-version-through-javascript/

于 2010-11-21T10:20:20.537 に答える
0

Skaffman に同意すると、別のデバイス データベースは DeviceAtlasです。ただし、これには料金を支払う必要があります。

于 2009-07-13T10:17:33.423 に答える