web-dev-qa-db-fra.com

Schémas d'URL Facebook sur un site Web mobile, ouvrez l'application si elle est installée, sinon accédez à la page Web

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]

13
user1795832

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

14