0

これは私にとってまったく新しいことであり、私が何をしているのか見当がつかないので、(存在する場合は)簡単に実装できるソリューションを本当に望んでいます。

モバイルデバイス(タブレットではない)でwww.domain.co.uk(Wordpressでホストされている)にアクセスするユーザーを、次のような特定のページにリダイレクトする必要があります(WPのパーマリンクを使用)。

www.domain.co.uk/mobile-home

そのモバイルページから、次のように、同じドメインのデスクトップホームページに戻るリンクも提供する必要があります。

www.domain.co.uk/desktop-home

私はheader.phpファイルでこれに似たコードで遊んでいました:

<script>if( 'ontouchstart' in window ) window.location = 'mobile.html';</script>

ただし、デスクトップページに直接リンクすると、モバイルユーザーはモバイルバージョンにリダイレクトされます。必要な機能を取得するにはどうすればよいですか?

アップデート

さて、私の最初のステップは、モバイル訪問者をモバイルページに誘導することです。だから私は私のウェブサイトのホームページの私のページテンプレートに次のコードを貼り付けました、そしてテストされたのはうまくいくようです。冒頭の「body」タグのすぐ下に配置しました。

<script>
if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile/i.test(navigator.userAgent) ) {
window.location = "176.32.230.17/domain.co.uk/m";
}
</script>

現在、以下のコードを使用してホームページにリンクするのに問題があります。ホームページに戻りますが、ホームページにはデバイスを検出する上記のコードがあり、モバイルサイトに戻り続けます。デバイス検出を適切な場所に配置していますか?:

<a href="http://176.32.230.17/domain.co.uk/?ref=desktop">Link back to desktop website</a>
4

4 に答える 4

1

のユーザーエージェントプロパティを使用してモバイルブラウザを検出しnavigator、訪問者をモバイルページにリダイレクトできます。タブレットとモバイルの違いは信頼できません(つまり、Galaxy Noteはタブレットですかモバイルですか?)

if( /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ) {
    window.location = "yourmobileurl.com/?ref=desktop";
}

サーバーでは、デスクトップのref varを確認し、訪問者に戻って選択内容をセッションに保存するためのリンクを表示できます。

于 2013-03-04T17:08:51.267 に答える
1
var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
    }
};

このリンクを参照してください:http ://www.abeautifulsite.net/blog/2011/11/detecting-mobile-devices-with-javascript/

javascriptを使用してデバイスを検出する方法を説明します

于 2013-03-04T17:08:54.657 に答える
1

したがって、@ Phillipのコードを使用することで、私の質問に対する完全な解決策を思いつくことができました。

次のJSをheader.phpテンプレートに配置して、ユーザーエージェントがモバイルデバイスであるかどうかを検出します。次に、URLにハッシュタグ「#desktop」が含まれているかどうかを確認するために別のチェックを実行します。デスクトップバージョン。それがモバイルウェブサイトにリダイレクトされない場合:

JS

<script>
if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile/i.test(navigator.userAgent) ) {

if(window.location.hash == "#desktop"){
    // Stay on desktop website
} else {
    window.location = "http://www.domain.co.uk/m";
}

}
</script>

次に、ループを完了するために、ハッシュタグ「#desktop」をURLに追加するリンクをモバイルサイトに追加して、モバイルバージョンに自動的にリダイレクトされないようにします。

<a href="http://www.domain.co.uk/#desktop">View desktop site</a>
于 2013-03-05T12:23:07.727 に答える
0

1つの解決策は、デスクトップバージョンに戻るリンクにurlパラメータを設定し、そのパラメータが設定されていない場合にのみデスクトップからモバイルに転送することです。

デバイスの検出に関しては、ユーザーエージェントを読み取り、ロジックを提供する必要があります。 iPadとiPhoneを検出するためのリンクは次のとおりです。同様のユーザーエージェントが他のユーザーにも適用されます。タブレットを識別する特効薬はありません。

ユーザーエージェントが何を返すかを知ることで、最も具体的なデバイスを特定できますが、これは常に変更される可能性があり、可能なすべてのタブレットに対してこれを行う必要があります。

パラメータソリューションに関しては、それは簡単に思えます。http://www.mywebpage.com/MyDesktopHome?forwardToMobile=noにリンクします。それ以外の場合は、永続化する期間に応じて、セッションまたはCookieのいずれかに保存できます。

于 2013-03-04T16:55:16.957 に答える