it-swarm-id.com

Bagaimana Anda mengarahkan peramban iPhone / Android ke m.example.com?

Saya memiliki beberapa pengkodean khusus yang hanya berfungsi untuk browser HTML5 (hal-hal geolokasi sederhana). Saya ingin mengarahkan ulang iPhone dan Android pengguna ke versi m.example.com situs web saya. Bagaimana cara terbaik untuk melakukan ini?

8
JoshFinnie

anda dapat menggunakan deteksi UserAgent, atau Anda dapat menggunakan jQuery.support (). Karena Anda mencari fungsionalitas tertentu, Anda dapat menggabungkan keduanya untuk mendapatkan yang Anda inginkan.

UserAgent mungkin benar-benar taruhan terbaik Anda. Lakukan ini dengan file .htaccess untuk mengurangi permintaan http Anda, dan mungkin mem-flash situs utama Anda sebelum pengalihan jika terjadi koneksi yang lambat atau kinerja javascript yang lambat.

Anda dapat melihat (sebagian besar) daftar lengkap agen pengguna seluler pada halaman wikipedia . Seperti yang Anda lihat ada persamaan antara produsen dan versi yang bisa Anda cari dalam ekspresi reguler.

2
helloandre

Pertanyaan Anda menyentuh dua bagian .. pengalihan dan kompatibilitas HTML5.

Pengalihan

Saya menggunakan .htaccess berikut:

RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|Palm|series60|palmsource|pocketpc" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|Android" [NC]
RewriteRule ^(.*)$ http://m.example.com/ [L,R=302]

Untuk php Anda dapat menggunakan perpustakaan ini: http://detectmobilebrowsers.mobi/ ... tetapi saya sangat menyarankan menggunakan htaccess untuk memproses waktu dan keamanan.

Anda dapat menemukan beberapa contoh tambahan di sini

http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/

Kemampuan browser

Seperti telepon Android saya tidak memiliki masalah dengan html5 dengan kode geolokasi. Anda dapat mempertimbangkan untuk menggunakan Modernizr Javascript Library untuk mendeteksi kemampuan browser klien yang mengunjungi halaman Anda.

Template unggul HTML5 boilerplate menggunakan modernizr di luar kotak untuk mendukung kebutuhan semacam ini.

Pendapat saya adalah: Saya sarankan untuk menggunakan metode htaccess untuk semuanya kecuali telepon dan browser terbaru yang didukung oleh modernizr dan biarkan Android dan pengguna iPhone diperiksa oleh Modernizr untuk dukungan fitur html5 dan mengarahkan "sisanya" pada Anda " versi tanpa geolokasi ".

Contoh modernizr:

 if (Modernizr.geolocation) {
    // do stuff
 }else{
    // propose mobile version 
 }

Semoga ini membantu

2
jflaflamme

Jika Anda mengode dengan PHP, Anda bisa menggunakan $_SERVER['HTTP_USER_AGENT'] untuk memeriksa header UserAgent, yang dikirim hampir oleh perangkat seluler utama apa pun ke skrip PHP. Kemudian bandingkan nilai header ini dengan fungsi substr untuk apa pun yang diperlukan di dalamnya.

Sebagai contoh, Apple perangkat akan selalu memiliki sub-string 'iphone' atau 'ipad'; Android perangkat akan selalu memiliki 'Android'. Hampir setiap perangkat seluler memiliki sub-string 'ponsel' yang tercantum di tajuk ini.

1
Paul Pi