Отключить обнаружение номера телефона на веб-ссылках на 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: 1555555
<br />
inconvenient: 1555555
</body>
</html>
Примечания
Этот вопрос, похоже, связан, но ему не хватает деталей, и я не уверен, что поведение на iPhone идентично. Это веб-приложение и не имеет встроенного компонента. iPad версии 3.2.2.
Ответы
Ответ 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, но с использованием стандарта работает ссылка.