Question Comment annoter les numéros de téléphone?


Je veux marquer un numéro de téléphone comme lien appelable dans un document HTML. J'ai lu l'approche des microformatset je sais que le tel: Ce système serait standard, mais il n'est pratiquement pas mis en œuvre.

Skype définit, autant que je sache, skype: et callto:, ce dernier ayant gagné en popularité. Je suppose que d'autres entreprises ont soit d'autres régimes ou sauter sur la callto: train.

Quelle serait la meilleure pratique pour baliser un numéro de téléphone, afin que le plus grand nombre de personnes possible avec un logiciel VoIP puissent simplement cliquer sur un lien pour recevoir un appel?

Question bonus: Est-ce que quelqu'un sait des complications avec des numéros d'urgence tels que 911 aux États-Unis ou 110 en Allemagne?

À votre santé,

Mettre à jour: Microsoft NetMeeting prend callto: schémas sous WinXP. Cette question suggère que Microsoft Office Communicator gère tel: régimes mais pas callto: ceux Super, Redmond!

Mise à jour 2: Deux ans et demi plus tard maintenant. Il semble se résumer à ce que vous voulez faire avec le nombre. Dans un contexte mobile, tel: est le chemin à parcourir. Cibler les ordinateurs de bureau, c’est à vous, si vous pensez que vos utilisateurs sont davantage des utilisateurs de Skype (callto:) ou aura probablement quelque chose comme Google Voice (tel:) installée. Mon opinion personnelle est, en cas de doute, utiliser tel: (en ligne avec la réponse de @Sidnicious).

Mise à jour 3: Utilisateur @ rybo111 a noté, que Skype dans Chrome a quant à lui sauté sur le tel: train en marche. Je ne peux pas vérifier cela, car aucune machine avec les deux à la main, mais si c'est vrai, cela signifie que nous avons enfin un gagnant ici:

                                        tel:

434
2017-07-22 09:04


origine


Réponses:


le tel: régime était utilisé à la fin des années 1990 et documenté au début de 2000 avec RFC 2806 (qui était obsolète par le plus complet RFC 3966 en 2004) et continue d'être amélioré. Justificatif tel: sur l'iPhone n'était pas une décision arbitraire.

callto:, tout en étant supporté par Skype, n'est pas une norme et devrait être évité à moins de cibler spécifiquement les utilisateurs de Skype.

Moi? Je voudrais juste commencer à inclure correctement formé tel: URI sur vos pages (sans renifler l'agent utilisateur) et attendez que le reste des téléphones du monde rattrape :).

Exemple:

<a href="tel:+18475555555">1-847-555-5555</a>

445
2017-09-23 16:45



Mes résultats de test:

appeler pour:

  • Nokia Browser: rien ne se passe
  • Google Chrome: demande d'exécuter Skype pour appeler le numéro
  • Firefox: demande de choisir un programme pour appeler le numéro
  • IE: demande d'exécuter skype pour appeler le numéro

tel:

  • Navigateur Nokia: fonctionne
  • Google Chrome: rien ne se passe
  • Firefox: "Firefox ne sait pas comment ouvrir cette URL"
  • IE: impossible de trouver l'url

69
2018-06-14 23:14



Le mieux est de commencer par tel: qui fonctionne sur tous les mobiles

Puis mettez dans ce code, qui ne sera exécuté que sur un bureau, et seulement quand un lien est cliqué.

j'utilise http://detectmobilebrowsers.com/ pour détecter les navigateurs mobiles, vous pouvez utiliser la méthode que vous préférez

if (!jQuery.browser.mobile) {
    jQuery('body').on('click', 'a[href^="tel:"]', function() {
            jQuery(this).attr('href', 
                jQuery(this).attr('href').replace(/^tel:/, 'callto:'));
    });
}

Donc, fondamentalement, vous couvrez toutes vos bases.

tel: fonctionne sur tous les téléphones pour ouvrir le composeur avec le numéro

callto: fonctionne sur votre ordinateur pour vous connecter à skype depuis Firefox, Chrome


43
2018-06-21 17:26



Comme on pouvait s'y attendre, le soutien de WebKit tel: s'étend également au navigateur mobile Android - FYI


20
2017-07-28 20:10



Je garde cette réponse à des fins «historiques» mais je ne la recommande plus. Voir la réponse de @Sidnicious ci-dessus et ma mise à jour 2.

Comme ça ressemble à un tirage entre callto et tel, je veux jeter une solution possible dans l'espoir que vos commentaires me ramènent sur la voie de la lumière ;-)

En utilisant callto:, puisque la plupart des clients de bureau le gèrent:

<a href="callto:0123456789">call me</a>

Ensuite, si le client est un iPhone, remplacez les liens:

window.onload = function () {
  if (navigator.userAgent.match (/iPhone/i)) {
    var a = document.getElementsByTagName ("a");
    for (var i = 0; i < a.length; i++) {
      if (a[i].getAttribute ('href').search (/callto:/i) === 0) {
        a[i].setAttribute ('href', a[i].getAttribute ('href').replace (/^callto:/, "tel:"));
      }
    }
  }
};

Des objections contre cette solution? Devrais-je commencer de préférence par tel:?


10
2017-07-22 10:02



Mobile Safari (iPhone et iPod Touch) utilise le tel: schème.

Comment composer un numéro de téléphone à partir d'une page Web sur un iPhone?


8
2017-07-22 09:20



RFC3966 définit l'URI standard de l'IETF pour les numéros de téléphone, c'est-à-dire l'URI 'tel:'. C'est la norme. Il n'y a pas de standard similaire qui spécifie 'callto:', c'est une convention particulière pour Skype sur les plateformes où il est possible d'enregistrer un gestionnaire d'URI pour le supporter.


3
2018-05-20 20:18



Cela a fonctionné pour moi:

1. créer un lien conforme aux normes:

        <a href="tel:1500100900">

2. le remplacer lorsque le navigateur mobile n'est pas détecté, pour skype:

$("a.phone")
    .each(function()
{ 
  this.href = this.href.replace(/^tel/, 
     "callto");
});

La sélection du lien à remplacer via la classe semble plus efficace. Bien sûr, cela ne fonctionne que sur les ancres avec .phone classe.

Je l'ai mis en fonction if( !isMobile() ) { ... donc il ne se déclenche que lorsqu'il détecte un navigateur de bureau. Mais celui-ci est probablement obsolète ...

function isMobile() {
    return (
        ( navigator.userAgent.indexOf( "iPhone" ) > -1 ) ||
        ( navigator.userAgent.indexOf( "iPod" ) > -1 ) ||
        ( navigator.userAgent.indexOf( "iPad" ) > -1 ) ||
        ( navigator.userAgent.indexOf( "Android" ) > -1 ) ||
        ( navigator.userAgent.indexOf( "webOS" ) > -1 )
    );
}

3
2018-06-04 14:38