Vérifier si le schéma d'URL est prise en charge en javascript
Est-il un moyen de vérifier si un schéma d'URL est actuellement enregistrés sur le téléphone... avec javascript?
- J'ai trouvé la solution posté ici pour travailler beaucoup mieux: stackoverflow.com/questions/6964515/...
Vous devez vous connecter pour publier un commentaire.
Non, pas à partir d'une page web.
Pas de façon transparente.
Mais il y a une manière similaire à vérifier si un pop-up a été bloqué ou pas.
Lorsque vous essayez un schéma d'URL qui n'est pas pris en charge, Safari avertit l'utilisateur qu'il ne sait pas quoi faire avec elle et rester sur la même page.
Donc, si vous avez donné votre app-appel pour activer, disons 300 ms, et puis faire quelque chose d'autre pour répondre à la non-existence du régime.
Ce n'est pas la plus jolie, mais il fonctionne:
Ici est une solution à ne pas afficher la fenêtre contextuelle lorsque vous revenez de l'application, il suppose que vous avez été absent plus de 400 ms:
J'ai trouvé
pagehide
événement plus robuste qu'en fonction de l'heure du système. Pour ceux d'entre nous qui préfère un non-jQuery faveur, voici l'extrait de code.Un autre grand (à moins de travailler dans les dernières versions des navigateurs) solution de contournement consiste à vérifier si le navigateur de la fenêtre a le focus après un court délai, de cette façon, vous pouvez afficher une boîte de dialogue à l'utilisateur que si le schéma d'URI n'a pas fonctionné
HTML:
Javascript (à l'aide de jQuery ici):
Ici est un travail jsFiddle, juste le mettre à jour avec votre propre schéma d'URI:
http://jsfiddle.net/mF6TZ/
À partir de iOS 6.0 Apple a présenté le Smart App Banners qui font ce que la plupart d'entre nous sont à la recherche de:
Inclure la balise meta suivante:
prises à partir d'ici:
Safari De Contenu Web Guide
Ici est une variante de la précédente, 2 solutions. Il permet de créer un lien qui peut être ouvert dans Google Chrome. Si elle échoue, elle ouvre le lien à l'aide de http
Ceci est basé sur la réponse de mrahman. Comme l'a noté, par JoshNaro new Date() redonne une date erronée lorsqu'il est appelé à l'intérieur du délai d'attente. Les Tests suggèrent que la date n'est pas mis à jour dans les discussions qui sont démarrées avant que l'application est désactivée.
Un autre laid setTimeout appelé après l'activation de créer un nouveau thread avec la date actuelle.
Cela a été testé sur iOS 8.
J'essaie d'utiliser seulement les " pagehide de l'événement, mais alors il ne fonctionne pas dans Firefox. J'ai créé cette version ici http://jsfiddle.net/thiagomata/6tvoc4f1/2/ ce qui fonctionne dans Firefox, Google Chrome et Safari. Je n'ai pas testé dans Internet Explorer encore.
Une chose de ce qui était nécessaire pour le faire fonctionner dans Firefox, était l'utilisation d'une Iframe pour définir la src. Cela me permet d'appeler l'application sans quitter ma page.
J'ai ce commentaire https://stackoverflow.com/a/18715513/49114 avec un plugin jQuery pour ajouter une alternative app lien vers des liens réguliers.