Je crée un site Web hybride pour ordinateur de bureau/mobile qui partagent tous les mêmes pages, c'est-à-dire que je n'ai pas deux URL distinctes pour ordinateur de bureau et mobile. J'essaie d'obtenir des liens Facebook pour ouvrir dans l'application Facebook native, si possible, sinon allez à l'URL régulière. Y a-t-il quelque chose dans les programmes Facebook qui gère cela automatiquement?
Fondamentalement, si l'application mobile n'est pas installée ou si l'utilisateur est sur un bureau, allez ici: https://www.facebook.com/pages/[pageid]
Si l'application mobile est installée, allez ici:
fb: // page/[pageid]
Un moyen simple serait de CSS Media Queries.
Affichez le lien fb: // pour les petites largeurs de périphérique. et un lien http: // normal pour les écrans de plus grande taille.
[~ # ~] modifier [~ # ~]
<a href="https://facebook.com/page" class="large-screen">Clicky</a>
<a href="fb://page/mypage" class="small-screen">Clicky</a>
Ensuite, l'utilisation de requêtes CSS Media masque l'un des liens en fonction de la taille de l'écran.
[~ # ~] mise à jour [~ # ~]
Au lieu d'utiliser CSS, une expérience utilisateur plus satisfaisante peut être créée avec javascript en tentant d'ouvrir l'URL du lien profond directement après l'ouverture de l'URL HTTP après X secondes dans un délai d'attente.
setTimeout(function () { window.location = "https://www.facebook.com"; }, 25);
window.location = "fb://";
L'URL HTTP se chargera toujours, mais dans le cas où des liens profonds ne sont pas disponibles, tenter d'en ouvrir un échouera en silence, revenant à la version Web.
Source: https://www.quora.com/How-does-Bitlys-Deep-Linking-detect-if-the-user-already-has-the-app-installed