4

私の目標は、モバイル Web サイト (モバイルおよびタブレット用) とレスポンシブ デスクトップ Web サイトを Wordpress で構築することです。フールプルーフのデバイス検出を実装する最も簡単な方法が必要です。

モバイル Web サイトには、実際にはタッチ デバイスにのみ役立つ多くの機能があり、モバイルとタブレット用にカスタム デザインされます。デスクトップ サイトは完全に異なり (ページは同じですがコンテンツが追加されています)、デバイスが検出をすり抜けた場合に備えて完全に応答します。

タッチデバイスを検出して別のページにリダイレクトするこのライナーがありますが、デバイス検出の簡単な方法であるには単純すぎるようです。これはどれほど愚かな証拠ですか?iOS だけでなく、Windows や Android デバイスでも動作しますか?

このようなサイトを作成するのは初めてで、これがどれほど効果的かはわかりません。

<!-- Redirect to the mobile index page if we're on a touch device -->
<script>if( 'ontouchstart' in window ) window.location = 'mobile.html';</script>
4

3 に答える 3

1

mdetect (モバイル検出) ライブラリを使用して、これを行うことができます。いくつかの言語で書かれており、Windows、Android、iOS などを検出します。必ずドキュメントを読んでください。

JavaScript バージョンには次の警告が含まれていることに注意してください。

// WARNING: 
//   These JavaScript-based device detection features may ONLY work 
//   for the newest generation of smartphones, such as the iPhone, 
//   Android and Palm WebOS devices.
//   These device detection features may NOT work for older smartphones 
//   which had poor support for JavaScript, including 
//   older BlackBerry, PalmOS, and Windows Mobile devices. 
//   Additionally, because JavaScript support is extremely poor among 
//   'feature phones', these features may not work at all on such devices.
//   For better results, consider using a server-based version of this code, 
//   such as Java, APS.NET, PHP, or Ruby.
于 2013-02-18T12:22:14.717 に答える
1

PHP でのモバイル検出では、常に $_SERVER['HTTP_USER_AGENT'] 変数を使用してきました。以下の関数を使用して、モバイル サイトを配信するユーザー (サポートする特定のデバイス) を非常に細かく制御します。アレイにユーザー エージェント (「Ipad」など) を追加するだけで、デバイスを追加できます。

function detectmobile(){
    $agent = $_SERVER['HTTP_USER_AGENT'];
    $useragents = array (
        "iPhone",
        "iPod",
        "Android",
        "blackberry9500",
        "blackberry9530",
        "blackberry9520",
        "blackberry9550",
        "blackberry9800",
        "webOS"
        );
        $result = false;
    foreach ( $useragents as $useragent ) {
    if (preg_match("/".$useragent."/i",$agent)){
            $result = true;
        }
    }
return $result;
}
if (detectmobile() == true) { wp_redirect('http://pageyouwwanttoredirectto'); }

使用法: 上記のコードを wordpress テーマの functions.php ファイルに追加できます。

于 2013-02-18T16:30:19.243 に答える
0

このコードは、タッチ対応のほぼすべてのデバイスで問題なく機能します。

于 2013-02-18T12:20:22.187 に答える