私のウェブサイトは訪問者を別のモバイルサイトに戻します。これはオンラインでいくつかのガイドを読んだ後はかなり簡単に思えます。
ただし、モバイルサイトのリンクをクリックすると、デスクトップサイトに移動できるようにしたいと思います。
私が見ている問題は、デスクトップサイトにリンクを戻すと、モバイル上にある場合はリダイレクトされるということです。
どうすればこれを回避できますか?
私のウェブサイトは訪問者を別のモバイルサイトに戻します。これはオンラインでいくつかのガイドを読んだ後はかなり簡単に思えます。
ただし、モバイルサイトのリンクをクリックすると、デスクトップサイトに移動できるようにしたいと思います。
私が見ている問題は、デスクトップサイトにリンクを戻すと、モバイル上にある場合はリダイレクトされるということです。
どうすればこれを回避できますか?
本当にあなたはこの種のことをクライアント側ではなくサーバー側でやりたいのです。問題は、JavaScriptリダイレクトを有効にするためだけに、(接続が悪い可能性がある)モバイルユーザーに最初にデスクトップサイト全体(1MBを超える可能性がある)をダウンロードするように強制していることです。
その時点で、モバイル訪問者は忍耐力を失い、すでに離れている可能性があります。
私はここでプロセスについてブログを書きました:http ://www.9xb.com/blog-2012-08-6-common-pitfalls-when-deploying-a-mobile-site-and-how-they-can-be-avoided / -記事の最後にジャンプすると、プロセス全体をマップしたフロー図が表示されます。この特定の方法はCookieを使用しますが、適応させることができます。このフロー図の利点は、言語に依存しないことです。サーバー側のプログラミングフレーバーで開発できます。
便宜上、以下のフローチャートを含めました(ただし、記事を読むことを強くお勧めします)。
http://www.9xb.com/wordpress/wp-content/uploads/2012/08/mobile-deployment-small.png
そのすべての作業の代替手段は、モバイルファーストのレスポンシブサイトを開発することです。あなたの状況を知らないので、私はそれをそのままにしておきます-それはすべてのシナリオで常に適切であるとは限りません。
モバイルへのリダイレクトをオプションにする(つまり、デスクトップページの上部にあるリンク)か、モバイルリダイレクトを最初のエントリポイントにのみ配置しmydomain.com
ます。に移動する場合はmydomain.com/index.html
、リダイレクトしないでください。そうすれば、「デスクトップに戻る」リンクは、モバイルエクスペリエンスのために送信する場所、送信元index.html
、または送信先への通常のリンクになります。index_mobile.html
個人的には、どちらのブラウザにも合うようにレイアウトを流動的にしたいのですが、そもそも問題はありません。現在、モバイルブラウジングの水を濁らせるためのさまざまなサイズのタブレットがあることを忘れないでください。
残念ながら、window.locationの変更後にリファラーを確認することはできません。ただし、ハッシュタグを追加して確認することはできます。
if(window.location.hash == "#stayHereDude"){
// do nothing, or whatever
} else {
window.location = "mobile/index.html";
}
次に、モバイルページで/index.html#stayHereDudeへのリンクを作成します。
モバイルリダイレクトを行うホームページで、モバイルサイトからのものであることを示すhref内の何かを確認する必要があります。私の場合、モバイルサイトからホームページへのリンクを使用しました。最後に?m=0が付いています。例:http ://www.yoursite.com/?m = 0
次に、ホームページでリダイレクトする前に、hrefでそのm=0を確認します。そこにある場合はリダイレクトしないでください。ない場合はモバイルにリダイレクトしてください。
if (window.location.href.match("m=0")) {
} else {
window.location = "http://www.yoursite.com/mobilesite";
}
これは、単一のページからモバイルサイトにリダイレクトする場合にのみ機能します。
ユーザーが「デスクトップサイトに移動」をクリックすると値が設定されるように、Cookie、セッション、またはローカルストレージを使用できます。
たとえば、携帯電話のユーザーが[デスクトップサイトに移動]をクリックしたときに、名前を「mobileOff」に設定し、値を「1」または「true」に設定したとします。次に、モバイルチェックを行う場所で、ユーザーのcookie / session / localStorageにmobileOffをチェックする条件を追加します。これがtrueに設定されている場合は、自動モバイルリダイレクトをバイパスします。それ以外の場合は、メインデスクトップサイトをロードします。
この種の機能には、ユーザーエージェントメソッドを組み合わせて、クエリ文字列でクラブされたデバイスを検出する必要があります。だからあなたのリンクが
site/default.aspx
誰かがこのページにアクセスした場合は、ユーザーエージェントを確認し、モバイルデバイスm.yourdomain.com/site/default.aspx
が単にリダイレクトするかどうかをデバイスが検出した場合は適切なサイトまたはイベントをより適切に応答しますが、誰かがページにアクセスした場合は、site / default.aspx?type=desktopをオーバーライドします。ユーザーエージェントをチェックしてデスクトップサイトをレンダリングする動作。
最初にデスクトップサイトをロードしてから、javascriptを介してモバイルサイトにリディクトする必要はありません。これは、ユーザーエージェントのサーバー側を使用して行います。
静的
/site/index.html
/site/mobile/index.html
次に、さまざまなものを使用できます。
静的サイトを使用している場合は、JavaScriptリダイレクトと2つの重複ページが煩雑になるため、より困難になります。コードを投稿して、現在どのようにセットアップを行っているかを教えてください。ソリューションを更新します。