0

これを行うための最良の方法についてアドバイスを探しています。

基本的に、ユーザーがモバイル デバイスを使用しているかどうかを検出する JavaScript があります。css ファイルが読み込まれている場合、ページの本文にモバイル クラスが追加され、隠しフィールドにモバイルの値が与えられます。次に、この非表示フィールドの値をチェックして、モバイル デバイス固有のメソッドを実行できるようにします。

現在、すべてが希望どおりに機能していますが、最初のページの読み込み時に JavaScript ポストバックを実行する必要があるため、隠しフィールドの値にコード ビハインドからアクセスできます。これを行うためのより良い方法があるかどうか疑問に思っていますか?

これが私のコードの一部です。

    if ( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) {
     $("body").addClass("mobile");
     $('head').append('<link rel="stylesheet" href="Styles/mobile.css" type="text/css" />');
     $('head').append('<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0;">');
     if ($("#hfdevice").val() != "mobile")
     {
          $("#hfdevice").val("mobile");
          __doPostBack('hfdevice','');
     }
   }

.

HiddenField hfdevice = (HiddenField)Master.FindControl("hfdevice");
     if (hfdevice.Value == "mobile")
     {
          Do Stuff
     }
4

1 に答える 1

1

レスポンシブ デザインを使用したくない場合は、コメントで言及されているようにユーザー エージェントを検出できます。コードビハインドは次のとおりです。

   string theAgent = Request.UserAgent;
... run your check to see if mobile... change functionality, set cookie, etc.

必要に応じて、global.ascx でこれを行い、別の MasterPage (モバイル マスター ページ) を読み込むこともできます。

于 2012-11-13T01:59:07.643 に答える