モバイル デバイス用の代替バージョンのウェブサイトをご用意しました。私たちが提供するコンテンツは異なり、うまく機能します。
提供するバージョンを検出する最良の方法は何ですか。すべてのモバイル デバイスのリストがあるわけではないため、ユーザー エージェント ヘッダーを使用するのは、何かを見落とす可能性があるため注意が必要です。
デバイスの画面幅を使用することを考えましたが、モバイル デバイスが JavaScript をサポートしていない場合はどうなりますか。これをどのように嗅ぐのですか?
モバイル デバイス用の代替バージョンのウェブサイトをご用意しました。私たちが提供するコンテンツは異なり、うまく機能します。
提供するバージョンを検出する最良の方法は何ですか。すべてのモバイル デバイスのリストがあるわけではないため、ユーザー エージェント ヘッダーを使用するのは、何かを見落とす可能性があるため注意が必要です。
デバイスの画面幅を使用することを考えましたが、モバイル デバイスが JavaScript をサポートしていない場合はどうなりますか。これをどのように嗅ぐのですか?
要求ヘッダーからクライアント デバイスを認識するデバイス記述データベース ( WURFLなど) を使用できます。次に、そのデータベースにクエリを実行して、別のサイトにリダイレクトするかどうかを決定する前に、デバイスがサイトを処理できるか (JavaScript をサポートしているか、画面が十分に大きいかなど) を判断できます。
あなたの環境については言及していませんが、WURFL は Java と PHP の API を提供しています。API が提供されていない場合でも WURFL を使用できますが、XML データを自分で解析および処理する必要があります。
media = "handheld"は、デスクトップブラウザのふりをするiphoneのような最新のスマートフォンでは機能しません(画面メディアタイプを使用します)。
http://detectmobilebrowser.com/ 無料のオープンソースで、javascript、php、asp.net、rubyなどの多くの言語で利用できる包括的なモバイルユーザーエージェントチェッカーがあります。
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");
}
これをヘッダーに入れるだけです:
<script type="text/javascript">
<!--
if (screen.width <= 700) {
window.location = "http://www.mobile-site.com";
}
//-->
</script>
ほぼすべてのコンピューター画面が 700px のしきい値を超えていますが、この値は変更できます。700px を超える携帯電話やタブレットは存在しないため (少なくとも私は知りません)、すべてのモバイル デバイスがモバイル サイトにリダイレクトされます。
ユーザーが自分の JavaScript を有効にしているかどうかを検出するための適切でエレガントな方法はないと思います。
IMO、ユーザーエージェントをリストするのが最善です。これはユーザーエージェントのリストです。これは非常に完全なようです(残念ながらフランス語で)。
単純:
<link rel="alternate" media="handheld" href="WEBSITE HERE">
それを頭の部分に入れます。
デバイスが JS をサポートしていない場合は、サーバー側のソリューションを検討することをお勧めします。WURFL API はその方向に役立ちます。
この種のアプローチの問題 (リバース プロキシがページをキャッシュし、モバイル バージョンにリダイレクトさせないなど) を回避したい場合や、最近のほとんどすべてのデバイスが JS をサポートしていることを知って、迅速な解決策が必要な場合があります。
このため、モバイル デバイスからアクセスしている場合に、ブラウザーのユーザー エージェントを検出してサイトのモバイル バージョンにリダイレクトする「redirection_mobile.js」という JS スクリプトを作成しました。
モバイル デバイスからデスクトップ バージョンにリダイレクトしたい場合 (「メイン サイトに移動」リンクなど) は、スクリプトがそれを処理し、セッションが終了すると、モバイル バージョンに再びアクセスします。 .
github のソース コードはhttp://github.com/sebarmeli/JS-Redirection-Mobile-Siteにあります。詳細については、次の記事を参照してください。
Skaffman に同意すると、別のデバイス データベースは DeviceAtlasです。ただし、これには料金を支払う必要があります。