Отключить обнаружение номера телефона на веб-ссылках на iPad? - программирование
Подтвердить что ты не робот

Отключить обнаружение номера телефона на веб-ссылках на iPad?

Я разрабатываю веб-приложение, которое будет запускаться с рабочего стола на iPad в качестве полноэкранного приложения. Документация Apple по телефонным ссылкам рекомендует использовать этот метатег:

<meta name = "format-detection" content = "telephone=no">

Однако это не работает. Есть ли какой-либо другой механизм HTML/CSS/JavaScript для управления этим поведением?

Случайная инъекция якорных меток вызывает у меня много ошибок CSS.

Обход

Один хак, который я нашел для работы, это ввести специальные символы пробела, но мысль о преобразовании всех моих данных на выходе не наполняет меня радостью. Такие персонажи приносят свои проблемы на стол. Выполнение этого будет еще более осложнено преобразованиями AJAX и JavaScript.

воспроизводящего

Шаги для воспроизведения:

  • Откройте страницу на iPad Safari
  • Используйте функцию закладки "Добавить на главный экран"
  • Запустите значок главного экрана

Пример страницы:

<!DOCTYPE html>
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name = "format-detection" content = "telephone=no">
<title>Telephone detect</title>
</head>
<body>
expected:
<a href="tel:1555555">1555555</a>
<br />
bad: 1555555
<br />
bad: &#x31;&#x35;&#x35;&#x35;&#x35;&#x35;&#x35;
<br />
inconvenient: 1&#xFEFF;555555
</body>
</html>

Примечания

Этот вопрос, похоже, связан, но ему не хватает деталей, и я не уверен, что поведение на iPhone идентично. Это веб-приложение и не имеет встроенного компонента. iPad версии 3.2.2.

4b9b3361

Ответ 1

Метатег работает для меня в asp.net. Я предполагаю, что это не сработало для OP, потому что HTML не очень хорошо сформирован. Не-IE, браузеры Mozilla имеют проблемы с искаженным XML/Html. Изменение

<meta name = "format-detection" content = "telephone=no">

к

<meta name = "format-detection" content = "telephone=no" />

Ответ 2

Поместите это после загрузки tellink

if (navigator.userAgent.match(/(iPhone|Android|BlackBerry)/)) {
//this is the phone

} else if (navigator.userAgent.match(/(iPod|iPad)/)) {
    $('a[href^=tel]').click(function(e){
       e.preventDefault();
    });
} else {
 //this is the browser

    $('a[href^=tel]').click(function(e){
        e.preventDefault();
    });
}

Ответ 3

Метатег будет работать:

<meta name="format-detection" content="telephone=no" />

В браузере Safari не отображается ваша обновленная страница правильно. Сделайте другое изменение текста на странице и обновите, и появятся изменения. Просто добавление метатега по-прежнему будет показывать страницу с номером, интерпретированным как номер телефона, если вы уже просмотрели его таким образом.

Ответ 4

ok, исправил его. добавьте <a href link> и создайте его без текстового оформления... Я использовал управление asp: hyperlink в asp.net, и он работал на 3.2, поэтому не уверен, почему он остановился в 4.2, но с использованием стандарта работает ссылка.