Carregue para invocar o html

eu quero usar a Tag html5 no meu site para visualização móvel quando o usuário clicar neste link a partir de dispositivo móvel que irá colocar uma chamada no número dado..

<p>Book now, call <a href="tel:01234567890">01234 567 890</a></p>

O Que devo fazer para esconder esta ligação quando o utilizador móvel não é html5.. Eu passei por modenizer, mas parece que não vai detectar o atributo link. http://www.tutorialspoint.com/html5/html5_modernizr.htm

Alguma sugestão? Este botão só vai aparecer quando o meu site é aberto em dispositivo móvel e para dispositivos móveis eu quero esconder este link quando aberto no celular antigo..

Author: Umair Rana, 2014-09-28

1 answers

O que fazer nos tempos modernos (2018)? Assume que tel: é suportado, usa-o e esquece qualquer outra coisa.


A tel: esquema de URI RFC5431 (assim como sms:, mas também feed:, maps:, youtube: e outros) é manipulada por manipuladores de protocolo (como mailto: e http: são).

Eles estão não relacionados com a especificação HTML5 (foi lá fora desde os anos 90 e documentados pela primeira vez em 2k com RFC2806 ) então você não pode verificar o suporte deles usando ferramentas como modernizr. Um manipulador de protocolo pode ser instalado por um aplicativo (por exemplo, Skype instala um callto: manipulador de protocolo com o mesmo significado e o comportamento de tel:, mas não é uma norma), nativamente suportado pelo navegador ou instalado (com algumas limitações) pelo próprio site.

O que o HTML5 adicionou é o suporte para instalar manipuladores de Protocolo personalizados baseados na web (com registerProtocolHandler() e funções relacionadas) simplificando também a verificação do seu apoio através da função isProtocolHandlerRegistered().

Existem algumas formas fáceis de determinar se existe um manipulador ou não: " Como detectar os manipuladores de protocolo do browser?).

Em geral, o que eu sugiro é:

  1. se estiver a executarnum dispositivo móvel, então poderá assumir com segurança que {[[0]} é suportado (Sim, não é verdade para dispositivos muito antigos, mas IMO pode ignorá-los).
  2. se o JS não está activo, então faz Nada.
  3. se estiver a correr em navegadores de ambiente de trabalho, pode usar uma das técnicas no post ligado para determinar se é suportado.
  4. Se {[[0]} não for suportado, então mude as ligações para usar callto: e repita a verificação desctileçada em 3.
  5. Se tel: e callto: não são suportados (ou em um navegador da área de trabalho - você pode não detectar o seu apoio), em seguida, basta remover o link substituindo URL href com javascript:void(0) e (se o número não repetido no texto span) colocar, telefone número em title. Aqui o HTML5 microdata não vai ajudar os usuários (apenas motores de busca). Note que as versões mais recentes do Skype lidam com callto: e tel:.

Lembre - se que (pelo menos nas versões mais recentes do Windows) existe sempre um manipulador de protocolos falso registado chamado App Picker (aquela janela irritante que lhe permite escolher com qual a aplicação que deseja abrir um ficheiro desconhecido). Isto pode desaparecer dos seus testes, por isso, se não quiser lidar com o ambiente do Windows como um caso especial você pode simplificar este processo como:

  1. se estiver a correr num dispositivo móvel, assuma que tel: é suportado.
  2. se estiver a correr no ecrã , substitua tel: por callto:. então largue {[[0]} ou deixe - o como está (assumindo que há boas hipóteses de o Skype estar instalado).
 64
Author: Adriano Repetti, 2018-05-22 16:37:16