Quero marcar um número de telefone como link que pode ser chamado em um documento HTML. Li a abordagem dos microformatos e sei que o tel:
esquema seria padrão, mas não está literalmente implementado em lugar algum.
O Skype define, tanto quanto eu sei, skype:
e callto:
este último ganhou alguma popularidade. Suponho que outras empresas tenham outros esquemas ou entrem no callto:
trem.
Qual seria a melhor prática para marcar um número de telefone, para que o maior número possível de pessoas com o software VoIP possa simplesmente clicar em um link para receber uma ligação?
Pergunta bônus: Alguém sabe sobre complicações com números de emergência como 911 nos EUA ou 110 na Alemanha?
Felicidades,
Atualização: O Microsoft NetMeeting usa callto:
esquemas no WinXP. Esta pergunta sugere que o Microsoft Office Communicator tratará de tel:
esquemas, mas não de esquemas callto:
. Ótimo, Redmond!
Atualização 2: dois anos e meio depois agora. Parece resumir-se ao que você deseja fazer com o número. No contexto móvel, tel:
é o caminho a percorrer. A segmentação de desktops depende de você, se você acha que seus usuários são mais pessoas do Skype ( callto:
) ou provavelmente terão algo como o Google Voice ( tel:
) instalado. Minha opinião pessoal é, quando estiver em dúvida, use tel:
(de acordo com a resposta do @Sidnicious ').
Atualização 3: O usuário @ rybo111 observou que, enquanto isso, o Skype no Chrome pulou na tel:
onda. Não posso verificar isso, porque nenhuma máquina está com as duas mãos à mão, mas se for verdade, significa que finalmente temos um vencedor aqui:tel:
fonte
tel:
URIs. Ainda estou usandocallto:
e exibindo o número de telefone na teoria de que os navegadores de celular devem detectar automaticamente o número de qualquer maneira.tel:
então talvez você deva remover seu comentário no final sobre o Skype usandocallto:
?Respostas:
O
tel:
esquema foi usado no final dos anos 90 e documentado no início de 2000 com a RFC 2806 (que foi obsoleta pela RFC 3966 mais completa em 2004) e continua a ser aprimorada . Apoiartel:
no iPhone não foi uma decisão arbitrária.callto:
, embora compatível com o Skype, não é um padrão e deve ser evitado, a menos que tenha como alvo específico os usuários do Skype.Eu? Eu apenas começaria a incluir
tel:
URIs adequadamente formados em suas páginas (sem cheirar o agente do usuário) e esperaria o restante dos telefones do mundo alcançar :).Exemplo :
fonte
href="tel://1-555-555-5555"
formato? os caras do Tutsplus recomendam code.tutsplus.com/tutorials/…Meus resultados de teste:
ligar para:
tel:
fonte
tel:
prefixo no registerProtocolHandler .A melhor aposta é começar com tel: que funciona em todos os celulares
Em seguida, insira esse código, que será executado apenas em uma área de trabalho e somente quando um link for clicado.
Estou usando http://detectmobilebrowsers.com/ para detectar navegadores móveis, você pode usar o método que preferir
Então, basicamente, você cobre todas as suas bases.
tel: funciona em todos os telefones para abrir o discador com o número
callto: funciona no seu computador para conectar-se ao skype do firefox, chrome
fonte
<body <?php body_class(); ?>>
código no arquivo header.php de um tema do wordpress.Como seria de esperar, o suporte do WebKit
tel:
se estende também ao navegador móvel Android - FYIfonte
Eu mantenho esta resposta para fins "históricos", mas não a recomendo mais. Veja a resposta @Sidnicious 'acima e minha Atualização 2.
Como parece um empate entre callto e tel caras, quero apresentar uma possível solução na esperança de que seus comentários me tragam de volta ao caminho da luz ;-)
Usando
callto:
, já que a maioria dos clientes de desktop lidará com isso:Em seguida, se o cliente for um iPhone, substitua os links:
Alguma objeção contra esta solução? Devo começar de preferência
tel:
?fonte
callto:
é um esquema proprietário de URI, então eu não começaria por aí.callto:
esquema, como o Skype. O próprio Chrome não faz ideia do que deve fazer.O Mobile Safari (iPhone e iPod Touch) usa o
tel:
esquema.Como faço para discar um número de telefone de uma página da Web no iPhone?
fonte
RFC3966 define o URI padrão IETF para números de telefone, que é o URI 'tel:'. Esse é o padrão. Não há um padrão semelhante que especifique 'callto:', que é uma convenção específica para o Skype em plataformas em que permite registrar um manipulador de URI para suportá-lo.
fonte
isso funcionou para mim:
1. crie um link compatível com os padrões:
2. substitua-o quando o navegador móvel não for detectado, por skype:
Selecionar link para substituir via classe parece mais eficiente. Claro que funciona apenas em âncoras com
.phone
classe.Coloquei-o em função
if( !isMobile() ) { ...
para que seja acionado apenas quando detectar o navegador da área de trabalho. Mas este é provavelmente obsoleto ...fonte
Eu usei
tel:
para o meu projeto.Funcionou no Chrome, Firefox, IE9 e 8, Chrome mobile e no navegador móvel no meu smartphone Sony Ericsson.
Mas
callto:
não funcionou nos navegadores móveis.fonte
Eu usaria
tel:
(como recomendado). Mas, para ter um fallback melhor / não exibir páginas de erro, eu usaria algo assim (usando jquery):A suposição é que os navegadores móveis que possuem um carimbo móvel na string userAgent têm suporte para o
tel:
protocolo. De resto, substituímos o link pelocallto:
protocolo para ter um substituto para o Skype, quando disponível.Para suprimir páginas de erro para o (s) protocolo (s) não suportado (s), o link é direcionado para um novo iframe oculto.
Infelizmente, não parece possível verificar se o URL foi carregado com sucesso no iframe. Parece que nenhum evento de erro foi disparado.
fonte
Desde
callto:
é por padrão apoiado por skype (criado em configurações do Skype), e outros que também apoiá-lo, eu recomendo usarcallto:
em vez deskype:
.fonte
Embora a Apple recomende
tel:
em seus documentos para o Mobile Safari, atualmente (iOS 4.3), ela aceitacallto:
da mesma forma. Portanto, recomendo o usocallto:
em um site genérico, pois funciona com o Skype e o iPhone e espero que funcione também em telefones Android.Atualização (junho de 2013)
Ainda é uma questão de decidir o que você deseja que sua página da web ofereça. Nos meus sites, forneço links
tel:
ecallto:
links (os últimos rotulados como Skype), pois os navegadores de desktop no Mac não fazem nada comtel:
links, enquanto o Android móvel não faz nada comcallto:
links. Mesmo o Google Chrome com o plug-in do Google Talk não responde aostel:
links. Ainda assim, prefiro oferecer os dois links na área de trabalho, caso alguém tenha problemas para fazer com que ostel:
links funcionem no computador.Se o design do site determinasse que eu forneça apenas um link, eu usaria um
tel:
link que tentaria alterarcallto:
nos navegadores da área de trabalho.fonte
tel:
; clicar em umcallto:
link resulta em "Página da Web não disponível"Usando jQuery, substituir todos os números de telefone dos EUA na página com o apropriado
callto:
outel:
esquemas.Obrigado a @jonas_jonas pela ideia. Requer a excelente função findAndReplaceDOMText .
fonte
tel
URI, mas não se reporte como um celular.Eu uso a
<a href="tel:+123456">12 34 56</a>
marcação normal e faço com que esses links não sejam clicáveis para usuários de desktop viapointer-events: none;
para navegadores que não oferecem suporte a eventos de ponteiro (IE <11), o clique pode ser evitado com JavaScript (o exemplo depende do Modernizr e do jQuery):
fonte
Modernizr.touch
que é suporte de toque Evento ao apoio inferir paratel:
não é confiável. Fácil casos de exceção: iPads, tablets Windows, etc.