href тел и стандартные браузеры

У меня есть проект, который требует <a href="tel:123456"> по номеру телефона (123456 — это не номер), однако это вызовет проблему для всего, кроме мобильных браузеров, поскольку он не сможет интерпретировать бит tel:.

Я пытался использовать jQuery для добавления атрибута href, когда ширина браузера меньше 1000 пикселей, но это очень ненадежный метод (планшеты также имеют ограниченное разрешение).

Любые идеи о том, как преодолеть это, будут очень признательны. Я использую PHP, jQuery и JavaScript.


person ggdx    schedule 22.01.2013    source источник
comment
Еще один способ обнаружить мобильное устройство. другие скрипты/   -  person Bogdan Burym    schedule 22.01.2013


Ответы (4)


Определите с помощью PHP, если это мобильный агент: http://www.000webhost.com/forum/scripts-code-snippets/27404-php-extremely-simple-way-check-if-mobile-browser.html

   <?php
        if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) {
           echo '<a href="tel:123456">';
        }else{
           echo 'You are not in a mobile';
        }
   ?>
person Ricardo Ortega Magaña    schedule 22.01.2013

Поскольку вы используете PHP, я могу порекомендовать класс php-mobile-detect. . Вы можете обслуживать отдельные устройства/ОС/браузеры или просто использовать isMobile() или isTablet() в качестве универсального.

Я обычно делаю что-то вроде этого:

include './includes/Mobile_Detect.php';
$detect = new Mobile_Detect;

if ( $detect->isMobile() or $detect->isTablet() ){
    $phone='<a href="tel:+12345678910">1-234-567-8910</a>';
} else {
    $phone='1-234-567-8910';
}

Тогда я просто <?php echo $phone;?> везде, где мне это нужно, и это работает! И использование PHP вместо javascript означает, что обнаружение выполняется на стороне сервера, поэтому конечному пользователю нужно меньше загружать (например, jQuery и дополнительные скрипты).

Библиотека устройств обновляется довольно часто, поэтому стоит время от времени проверять страницу GitHub. .

person Andrew Lott    schedule 14.08.2013

Вы хотите определить, есть ли у пользователя мобильный браузер или нет? Это может помочь:

http://jquerybyexample.blogspot.com/2012/03/detect-mobile-browsers-using-jquery.html

person Zim84    schedule 22.01.2013
comment
Спасибо, Зим. Работает, кроме iPhone, поэтому я выбрал вариант Рикардо выше. - person ggdx; 22.01.2013

Попробуйте это ниже:

Синтаксис: callto

<a href="callto://9566603286">9566603286</a>

 <?php
    if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) {
       echo '<a href="callto://9566603286">9566603286</a>';
    }else{
       echo 'You are not in a mobile';
    }
 ?>
person Elangovan    schedule 19.06.2014