59

私たちは、エンタープライズ e コマース Web アプリケーション (Java/サーブレット ベース) のモバイル ブラウザー サポートへの道をたどり始めています。もちろん、決定すべきことはたくさんありますが、モバイル ブラウザーを確実に検出し、それに応じて返されるコンテンツを決定できるようにすることが、基礎となるように思えます。httpリクエストに基づいて(迅速に)この決定を行う標準的な方法はありますか、理想的には、リクエストを行っている特定のブラウザとデバイスに関する詳細情報(画面サイズ、html機能など)を収集しますか?

また、既存の大規模なエンタープライズ Web アプリケーションを利用して、開発側からモバイル ブラウザー サポートを設計するというこの道をたどった人からの補足情報もあれば幸いです。

[編集] 私は確かにリクエスト ヘッダーを理解しており、標準ユーザー エージェントのデータベースに関する情報は非常に役立ちます。「その他の」リクエストヘッダープロパティについて話している場合は、同様の標準化された名前/値のリソースを含めることができれば、大きな助けになります。

[編集] 何人かのユーザーが、検出を行う Web サービスへの回線経由の呼び出しを含む解決策を提案しています。これでうまくいくと確信していますが、次の 2 つの理由から、企業の e コマース サイトには適していません。1) 速度。サード パーティへのすべてのページ リクエストに対する回線経由の呼び出しは、パフォーマンスに大きな影響を与えます。2) 依存関係/法律。ウェブサイトの応答時間と主要な機能をサービスに結び付けますが、これは法的およびリスク上の理由から恐ろしいことです.

4

19 に答える 19

42

標準的な方法は、ユーザー エージェントをチェックすることではないでしょうか? モバイル ブラウザの検出に使用できるユーザー エージェントのデータベースを次に示します。

于 2008-09-26T22:07:07.670 に答える
20

WURFLを使用して言及された@Davidの回答 - おそらくあなたの最良の選択肢です。ただし、成功率は通常60%程度です(私と他の人の経験から)。通信事業者が常に UA を変更し、存在するデバイス プロファイルの量 (60,000 以上?) があるため、必要なすべての適切なデータを確実に取得する方法はありません。

デバイス DB に大きく依存する前に、少し警告します。私が間違っていると推測した場合に備えて、ユーザーがセッションオプションを変更できるようにすることで、ユーザーのオプションを開いたままにしておきます。

于 2008-10-04T00:13:27.973 に答える
8

Modernizerを使用してブラウザの機能を検出できます

于 2010-09-03T00:13:22.703 に答える
6

モバイルデバイスを検出する正しい方法を何日も探した後、私はそれをシンプルに保つことにしました[愚か]そして私は私のインデックスページに「モバイルデバイスサイト」ボタンを置くつもりです....それはワンクリックです!!

于 2010-08-25T11:56:40.473 に答える
6

ユーザー エージェントを介してモバイル ブラウザーを検出することはできますが、PC プラットフォームでのブラウザー戦争は、ユーザー エージェントのスニッフィングが実際にはあまり良いことではないことを示しています。

理想的には、メディア タイプに基づいて特定のスタイルを適用するか、ユーザー エージェント以外のヘッダー (ブラウザーが好むコンテンツの種類を示す Accept-header など) に基づいて別の回答を送信する必要があります。 .

現時点では、ブラウザ スニッフィングを介して iPhone と Opera で動作するサイトをコーディングするだけで十分かもしれません。これらのデバイスを可能な限りサポートしていないモバイル Web サイトを最初から開発するのはもったいないことです。

于 2008-09-26T22:17:21.327 に答える
4

モバイル ブラウザの検出- さまざまなプログラミング言語のスニペット。

于 2012-05-31T09:13:57.460 に答える
4

この記事(およびそのフォローアップ) は良さそうです。

于 2008-09-26T22:11:22.323 に答える
3

次の軽量の Apache 構成は非常にうまく機能し、ユーザーが PC バージョンを好む場合にユーザーの好みを記憶します。

<VirtualHost (your-address-binding)>   

  (your-virtual-host-configuration)       

  RewriteEngine On     
  RewriteCond %{QUERY_STRING} !ui=pc
  RewriteCond %{HTTP_COOKIE} !ui=pc
  RewriteCond %{HTTP_USER_AGENT} "^.*(iphone|ipod|ipad|android|symbian|nokia|blackberry| rim |opera mini|opera mobi|windows ce|windows phone|up\.browser|netfront|palm-|palm os|pre\/|palmsource|avantogo|webos|hiptop|iris|kddi|kindle|lg-|lge|mot-|motorola|nintendo ds|nitro|playstation portable|samsung|sanyo|sprint|sonyericsson|symbian).*$" [NC,OR]

  RewriteCond %{HTTP_USER_AGENT} "^(alcatel|audiovox|bird|coral|cricket|docomo|edl|huawei|htc|gt-|lava|lct|lg|lynx|mobile|lenovo|maui|micromax|mot|myphone|nec|nexian|nook|pantech|pg|polaris|ppc|sch|sec|spice|tianyu|ustarcom|utstarcom|videocon|vodafone|winwap|zte).*$" [NC] 

  RewriteRule /(.*) http://bemoko.com/$1 [L]

  RewriteCond %{QUERY_STRING} "ui=pc"
  RewriteRule ^/ - [CO=ui:pc:(your-cookie-domain):86400:/]
  RewriteCond %{QUERY_STRING} "ui=default"
  RewriteRule ^/ - [CO=ui:default:(your-cookie-domain):86400:/]
</VirtualHost>

この @ http://bemoko.com/training.team/help/team/pc-to-mobile-redirectの詳細な背景

于 2011-11-02T23:33:55.360 に答える
2

uaprofとユーザー エージェントに基づく無料の検出システムを提案します 。これを自分で管理したい場合は、データベース全体をダウンロードして自分でローカルに管理できるため、Wurfl を使用する必要があります。

于 2009-06-30T11:33:38.883 に答える
1

ここに投稿されているのはわかりませんが、現在調べているもう1つのオプションはwww.detectmobilebrowser.comです。

于 2011-10-18T13:48:11.320 に答える
1

最も簡単な方法は、モバイルブラウザに関連付けられた通常のタグを使用して配列を作成することです。少なくともほとんどのモバイルユーザーエージェントは、mobile、mini、nokia、java ME、android、iphone、mobile OSなどの単語を持っている必要があります。phpstrposを使用してユーザーエージェントと一致するものがある場合は、ページの上部にモバイルボタンを印刷します。ユーザーに選択を任せます。私はフルサイトが大好きです。ほとんどの場合、ズームまたはスクロールする必要があることを除けば、モバイルブラウザでも同じエクスペリエンスが得られます。

于 2012-02-29T13:57:45.070 に答える
1

ブラウザー、デバイス、受け入れられた言語、受け入れられた形式などのほとんどの情報をリクエスト ヘッダーから取得します。上記のユーザー エージェントは、リクエスト ヘッダーの一部です。

于 2008-09-26T22:12:18.170 に答える
1

わかりました、これは非常に簡単な答えです - ユーザーに決定させるのはどうですか? アプリへのログイン時に、モバイル サイトへのリンクを提供します。モバイル サイトでは、「メイン サイトに戻る」リンクを提供します。モバイル デバイスで www.fazolis.com を試してみてください。これはうまく機能します。

次に、ブラウザ サイトからモバイル サイトへのリンクで、「投票」とユーザー エージェントを登録します。モバイル サイトを希望するクライアント信頼できる独自のリストを作成できます。これらのモバイル デバイスの画面サイズの仕様に合わせてこれを使用すると、満足のいくユーザー エクスペリエンスのためのかなり優れたロジックを構築できます。このような初歩的なことをネットワークソースに投稿することは決してありません。

ああ、そしてあなたの「モバイル サイト」について - ap をセマンティックにうまく書くと、モバイルとブラウザの両方に 1 つのサイトを表示できるはずです。ちょっと考えてみてください - これは、後で時間を節約するために、余分に考えて努力する価値があります。

于 2011-05-24T23:18:47.720 に答える
0

次の内容で、モバイル Web のデバイスと機能の検出に出くわしました。

  1. デバイスと機能の検出を使用して、モバイル Web でのユーザー エクスペリエンスを向上させる
  2. デバイス検出の概要
  3. モバイルサイトのデザインへのアプローチ
    1. 何もしない
    2. 一般的なモバイル サイトの提供
    3. モバイルとアダプテーションを念頭に置いた設計
  4. コンテンツの適応とデバイスのグループ化戦略
    1. デバイスのグループ化
    2. コンテンツ適応
  5. そもそも適応の必要性を最小限に抑える
  6. デバイス検出の一般的なアプローチ
    1. サーバー側の適応
    2. クライアント側の適応
    3. サーバー側のユーザー エージェント (UA) とヘッダー ルックアップ
    4. サーバー側の UA 文字列とデバイス データベース ルックアップの組み合わせ
    5. サーバー側のユーザー エージェント プロファイル (UAProf) の検出
    6. JavaScript技術による検知
    7. CSS メディア タイプ
    8. CSS メディア クエリ
  7. その他のベスト プラクティス
    1. リダイレクト + 手動リンク
    2. ランディングページ + マニュアルリンク
  8. ダウンロード可能なサンプルページ
于 2010-09-14T22:03:46.150 に答える
0

handsetdetection.com のようなモバイル ブラウジングを検出する Web サービスを使用できます。

于 2008-11-16T23:57:41.340 に答える
0

このような以前に定義されたリストでユーザーエージェント文字列を確認する必要があります

于 2008-09-26T22:11:12.510 に答える
0

WURFL API を使用してデバイス タイプを検出できます

http://wurfl.sourceforge.net/wurfl_schema.php

または ブラウザの機能を検出するモダナイザー

于 2015-01-07T08:15:55.883 に答える
0

実際のところ、ユーザー エージェントに依存するだけでは、モバイル ブラウザーを検出するのに十分ではありません。

確かに、何年も前は、特定の文字列を検索して、それが Nokia か何かであると推測できましたが、今では非常に多くの電話があり、それらのふりをしていないため、より洗練されたものが必要です。

リンク テキストで、MTV がすべてのモバイル Web サイトに使用しているのと同じソリューションに基づいた素晴らしいサイトを見つけました。デバイスに依存しないマークアップ言語を備えているため、非常に優れていますが、さらに重要なのは、isMobileDevice() の Web サービス呼び出しを提供することです。

マニュアルを見て、「どのように機能するか」を確認してください。

私はこれを顧客のサイトに使用してきましたが、正確に検出されないモバイル ブラウザーをまだ見つけていません。完全に目がくらむ!

于 2009-09-15T16:17:39.970 に答える