6

ASP.NET MVC 3 Webアプリケーションでは、カスタムビューエンジンのビュー名をオーバーライドして、タブレット以外のモバイルデバイス用に最適化された別のビューを表示しています。

このビューオーバーライドを実行したいのはRequest.Browser.IsMobileDevice、デバイスのネイティブ表示幅の正確な値だけです。

51degrees.mobiは、この単純なユースケースでは非常に重く複雑に感じます。たぶんそれは、51degrees Webサイトのすべての例とドキュメントを調べて、単純な実装の単純な質問のように見える答えを得ようとすることに対する私の欲求不満です。

51度がない場合、との値を取得しRequest.Browser.IsMobileDeviceますRequest.Browser.ScreenPixelsWidth。デスクトップブラウザの場合、幅は常に640ですRequest.Browser.Capabilities["51Degrees.mobi"]が、の値は「不明」ですScreenPixelsWidth。実装のサーバー側の性質を考えると、Unknown値の方が正確だと思います。

私の主な質問は、単純な要件のために本当に51度が必要なのかということです。

51度を使用しない場合、IsMobileDeviceと画面幅を正しく検出できないブラウザの具体例はありますか?たとえば、組み込みの.NET Request.Browser.IsMobileとScreenPixelsWidthの値は、新しいiPadが発売されたとき、または最新のAndroidブラウザーバージョンでは不正確または不在になりますか?私のサイトは約65%のモバイルユーザーを獲得しており、その多くはUP.Browserのようなブラウザを備えたラメフィーチャーフォンを使用しているため、モバイルを正しく利用することがいくらか重要です。

51度を使用する場合、常にRequest.Browser.Capabilities ["51Degrees.mobi"]にドリルダウンする必要がありますか?または、51度はRequest.Browser.IsMobileDeviceの値をオーバーライド/更新して、ブラウザーの評価と同期しますか?明らかに、Request.Browser.ScreenPixelsWidthをオーバーライドしません。

MVC 4を提案したり、WURFLなどの有料ソリューションを使用したりしない限り、「間違ったことをしているので、ここがより良い方法です」という回答を受け入れます。

4

1 に答える 1

4

このFAQは、Request.Browserのどのプロパティが51Degrees.mobiによってオーバーライドされるかを説明しています。

「51Degrees.mobi」キーに直接アクセスする必要がある場合はほとんどありません。プロパティがオーバーライドされている場合は、通常どおりにアクセスします。プロパティがオーバーライドされていないか、HttpBrowserCapabilitiesでカバーされていない場合は、プロパティ名を使用する必要があります。例えば:

var isTablet = Request.Browser ["IsTablet"];

利用可能なプロパティのリストについては、このリンクを参照してください。

ScreenPixelsWidthをオーバーライドする必要があるため、テスト環境について詳しく知りたいと思います。51Degrees.mobiがサイズ(不明)を判別できない場合、.NETでは値が数値である必要があるため、値は上書きされません。

51Degrees.mobiをご検討いただきありがとうございます。

于 2012-03-15T12:33:20.660 に答える