web-dev-qa-db-ja.com

IsMobileDeviceはどのように機能しますか?

[〜#〜] msdn [〜#〜] を使用すると、モバイルブラウザの検出が非常に簡単になります。

if (Request.Browser["IsMobileDevice"] == "true" ) 
{
    Response.Redirect("MobileDefault.aspx");
}

実際には、Request.Browser.IsMobileDeviceも確認できるようです。しかし、これは実際にはどのように機能しますか?私は.browserファイルさえも持っていません...この裏で何が起こっているのですか? ASP.NET 2.0の組み込みのデフォルトはありますか?

41
Bryan

いくつかの* .browserファイルが.NETに同梱されています。

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

ランタイムは* .browserファイルの正規表現を使用して、受信したUser-Agent文字列と照合し、見つかった各一致に基づいて一連のプロパティを設定します(階層には複数ある場合があります)。

詳細なモバイルデバイスのサポートが必要な場合は、MDBFのインストールを検討してください。これにより、約400台のデバイスのサポートが追加されます。

http://mdbf.codeplex.com/

60
RickNZ

今、4年後、それはさらに簡単です

Request.Browser.IsMobileDevice
16
VladL

私の現在の理解では、ブラウザーがモバイルかどうかを検出し、次にブラウザーの実際の機能を検出するという問題に対する正確な解決策は1つしかないということです。このソリューションは、ScientiaMobileのWURFL(http://www.scientiamobile.com)です。これはAug30の時点で、すべての使用に対してもはや無料ではありません。 WURFLは現在、AGPLの下でASP.NET APIとともにリリースされています。データリポジトリには、コピーと標準のAPIとは異なるAPIの使用を禁止する特定のライセンスも付属しています(商用ライセンスを購入しない限り)。

したがって、実用的な目的のために、51Degreesなどの他のアプローチは、WURFLリポジトリの最新および将来のバージョンでは使用できません。これにより、51Degreesが新しいデバイス(Windows Phone 7.5など)を検出することが困難になります。

MDBF(却下されたプロジェクト)に関しては、デバイスがモバイルであるかどうかを検出するために機能する可能性があります(ASP.NETのIsMobileDeviceよりはるかに優れています)。デバイスの特性に関する限り、完全に信頼できるわけではありません。私のHTCの欲望Androidの画面サイズは240x320で、これは明らかに間違っています。

私の会社はWURFLライセンスを購入しましたが、それで大丈夫です。

1
Dino Esposito

私はMSDNリンクに依存しません。残念ながら、モバイルブラウザーには共通の標準がなく、モバイルブラウザー以外のものを模倣しようとする人がたくさんいます。また、認識できない場合はtrueを返します。これを見てください link

1
Ta01

ほとんどのサイトでは、実際に重要なのは画面のサイズであり、それほど機能ではありません(少なくとも、SafariやChromeが搭載されているものなどの最新の電話について話すとき)は、重要ではありません。解像度の確認が最も理にかなっていますか?

Request.Browser.ScreenPixelsHeight

そして

Request.Browser.ScreenPixelsWidth
1
CleverPatrick

以下のコードを使用するだけで、

if (Request.Browser.IsMobileDevice) 
{
    Response.Redirect("MobileDefault.aspx");
}
0
Tahir Alvi

51Degreesを追加している間に問題が解決されました。すべてNuget thatsを使用して51degreesを追加してください。詳細はこちら https://51degrees.codeplex.com

0
Shahdat