Deeplinking les navigateurs mobiles à l'application native - des Problèmes avec Chrome lorsque l'application n'est pas installée

J'ai une page web, ce qui permet de l'appeler entry.html.

Lorsqu'un utilisateur saisit cette page, un code javascript (voir ci-dessous) est de tenter de lien profond à l'utilisateur de le natif iOS /Android app.

Si le lien profond échoue (probablement si l'application n'est pas installé sur l'appareil), l'utilisateur doit "chute en arrière" vers une autre page - appelons cela fallback.html.

voici le code javascript qui s'exécute sur entry.html:

$(function(){
    window.location = 'myapp://';
    setTimeout(function(){
        window.location = 'fallback.html';
    }, 500);
});

c'est un standard du deep-linking méthode est recommandée à tous sur le réseau; essayez de lien profond, et si le délai d'extinction des incendies cela signifie que le lien profond n'a pas eu lieu - afin de secours.

cela fonctionne bien, tant application est installée sur l'appareil.

mais si l'application n'est pas installé, c'est le comportement lors de la tentative de lien profond:

Mobile Safari: je vois un message d'alerte disant: "Safari ne peut pas ouvrir cette page", pour un moment, puis il tombe-dos correctement à fallback.html- ce qui est le comportement attendu.

Mobile Chrome est mon problème.

lorsque l'application n'est pas installé, le navigateur est en fait redirigé vers le myapp:// url, ce qui est, bien sûr, non valide - si je reçois un "non trouvé" la page, et ne se produit pas.

Enfin- ma question est:

Comment puis-je corriger mon code afin de repli SE FERA sur mobile Chrome ainsi? tout comme le navigateur Safari mobile?

remarque: je vois que LinkedIn site web mobile fait cela correctement, avec Safari & Chrome, avec ou sans l'application installée, mais je ne pouvais pas suivre le code responsable 🙁

note2: j'ai essayé en ajoutant un iframe au lieu de window.location = url, cela ne fonctionne que sur Safari mobile Chrome n'a pas de lien profond lors de l'ajout d'un iFrame, même si l'application est installée.

Merci à tous!


Mise à JOUR:

j'ai trouvé une solution convenable, et d'avoir répondu à ma propre question. voir accepté de répondre pour ma solution.

  • Une question similaire ici stackoverflow.com/questions/5679918/...
  • merci. mais cela ne veut pas répondre à ma question. comment traiter avec les mobiles Chrome lorsque l'application n'est pas installée?
  • Voici un suivi après, être prudent yo lire les commentaires de l'auteur ne savais pas à propos http liens: aawaara.com/post/88310470252/...
  • je vais vérifier et mettre à jour bientôt. merci
  • Hey @geevee. Je le recommande simplement abstraction de tout cela loin dans la Direction générale de service (branche.io) - un projet que je contribue. Direction générale des liens de prendre soin de toute cette complexité pour vous et choisir la bonne méthode en fonction du navigateur. Le problème avec votre réponse sélectionnée est le sélecteur. C'est ennuyeux pour un utilisateur de le faire et souvent, les gens abandonnent. Si vous utilisez les intentions de google Chrome et d'autres mécanismes pour Firefox/navigateur par défaut/d'autres, il va tout simplement de façon transparente ouvrir l'application.
InformationsquelleAutor geevee | 2014-11-26