Как я могу перенаправить пользователей не-IOS на другую страницу в моем веб-приложении - PullRequest
0 голосов
/ 08 ноября 2011

Я работаю над простым веб-приложением, использующим jQuery mobile, и оно разработано специально для iPhone. Я ищу способ перенаправить любого, кто не использует устройство iOS, на другую страницу.

Я не могу найти какие-либо недавние решения, которые работают. Самый близкий, который я получил, был этот , но скрипт не работал на моем iPhone. Это перенаправило меня независимо от того, какое устройство я использовал.

Есть ли решение, которое будет соответствовать моим потребностям?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

2 способа сделать это -

  1. Выполнить перенаправление на устройстве. т. е. у клиента есть логика, с которой URL попадет. Это то, что вы упоминаете выше.
  2. Лучше всего сделать это на стороне сервера на веб-сервере. Веб-серверы (такие как apache & nginx) идеально подходят для этого. Прежде чем перейти по URL-адресу с вашего клиентского устройства, прикрепите заголовок, например, XX-DEVICE-HEADER:IPOD и т. Д., Затем на веб-сервере прочитайте этот заголовок и перенаправьте его соответствующим образом.
0 голосов
/ 08 ноября 2011

Обратите внимание, что скрипт на этой странице перенаправляет пользователей iPhone и iPod на другой сайт. Он не перенаправляет пользователей, не являющихся iPhone / iPod, на другой сайт. Если это было проблемой, просто измените код javascript на следующий:

if (!(navigator.userAgent.match(/iPhone/i)) && !(navigator.userAgent.match(/iPod/i))) {
    location.replace("http://notiphoneoripod.yourdomain.com");
}

Если вам нужно также перенаправить iPad, используйте следующую модификацию:

if (!(navigator.userAgent.match(/iPhone/i)) && !(navigator.userAgent.match(/iPod/i)) && !(navigator.userAgent.match(/iPad/i))) {
    location.replace("http://notiphoneoripodoripad.yourdomain.com");
}

В качестве альтернативы, если вы используете серверный язык программирования, такой как PHP, вы должны выполнить перенаправление через него вместо кода на стороне клиента. Вы можете проверить, используя $ _SERVER ['HTTP_USER_AGENT'] в PHP.

Или, если вы хотите сделать это непосредственно на сервере, если вы используете Apache, вы можете добавить в .htaccess следующее:

RewriteCond %{HTTP_USER_AGENT} !^.*iPhone.*$
RewriteRule ^(.*)$ http://notiphone.yourdomain.com [R=301]
...