ссылка на tel anchor не работает с jqtouch и phonegap - PullRequest
1 голос
/ 15 ноября 2011

Я использую phonegap с jqtouch и пытаюсь очень просто открыть родное приложение телефона и вызвать вызов. Я пробовал всевозможные варианты на следующем:

<a href="tel:[NUMBER]" class="greenButton>Call number</a>

Я пробовал rel = "external"

Я пытался использовать href = "tel: //"

Я пробовал target = "_ blank"

Я пробовал target = "_ webapp"

Я даже пытался добавить class = "tel" и использовать jQuery для вызова $ (location) .attr ('href', this.href);

По сути, jqtouch, должно быть, перехватывает ссылки, чтобы выполнить свою задачу, и я не могу понять, как заставить его работать нормально!

Однако я нашел кое-что странное ...
Если я оберну ссылку в оболочку iscroll, она будет работать.

<div class="s-scrollwrapper">
<a href="tel:[NUMBER]" class="greenButton">Call number</a>
</div>

Я, очевидно, не хочу соглашаться на это, потому что это портит форматирование и делает кнопку прокручиваемой и бессмысленной. Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 5 ]

1 голос
/ 21 декабря 2011

В моем случае это была проблема с iScroll, которую мне удалось решить, добавив следующую опцию:

  var options = {
    //other options
    onBeforeScrollStart: function (e) {
      var target = e.target;
      while (target.nodeType != 1) target = target.parentNode;
      if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA' && target.tagName != 'A') e.preventDefault();
    }
  };
  var myScroll = new iScroll(wrap, options);
0 голосов
/ 29 сентября 2015

Если у кого-то есть такая же проблема, вы можете попробовать опцию preventDefaultException в разделе Дополнительные параметры http://iscrolljs.com/#advanced-options

Из документов iScroll 5:

options.preventDefaultException

Это все исключения, когда preventDefault() будет запущен в любом случае, несмотря на значение параметра warnDefault.Это довольно мощный вариант, если вы не хотите, например, preventDefault() для всех элементов с именем класса поля формы, вы можете передать следующее:

preventDefaultException: { className: /(^|\s)formfield(\s|$)/ }

По умолчанию: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }.

Таким образом, вы можете просто добавить тег A к значению tagName: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|A)$/ }

0 голосов
/ 23 января 2014

Вам нужно использовать target="_system" на iOS для работы tel: ссылок.

0 голосов
/ 14 декабря 2011

Оказалось, что jqtouch перехватывает события нажатия и предотвращает поведение по умолчанию. В итоге я «исправил» то, что поместил div 's-scrollwrapper' вокруг содержимого на странице с помощью кнопки вызова. В любом случае мне нужно было сделать это для всех экранов приложения, но что касается этого форка datazombies, то, вероятно, ему нужен лучший способ для реализации телефонных ссылок.

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

Я пытался:

<a href="tel:[NUMBER]" rel="external" target="_webapp">Call number</a>

... и все работало нормально.

Возможно, ему нужны rel="external" (чтобы он не пытался AJAX-ссылка) и И target="_webapp", чтобы он не пытался открыть Safari для обработки ссылки.

...