1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!-- iframe utilisé pour tenter de charger un protocole personnalisé -->
<iframe style="display:none" height="0" width="0" id="loader"></iframe>
<script>(function(){
// Pour le navigateur de bureau, n'oubliez pas de transmettre toutes les métadonnées sur le lien pour le lien profond
var fallbackLink = 'https://www.facebook.com/webinkmarseille/'+window.location.search+window.location.hash;
// Détection simple des appareils
var isiOS = navigator.userAgent.match('iPad') || navigator.userAgent.match('iPhone') || navigator.userAgent.match('iPod'),isAndroid = navigator.userAgent.match('Android');
// Mobile
if (isiOS || isAndroid) {
// Chargez notre protocole personnalisé dans l'iframe, pour Chrome et Opera, cela enterre la boîte de dialogue d'erreur (qui est en fait HTML)
// pour iOS, nous obtiendrons une erreur contextuelle si ce protocole n'est pas pris en charge, mais il ne bloquera pas javascript
document.getElementById('loader').src = 'custom-protocol://my-app'+window.location.search+window.location.hash;
// Le lien de secours pour Android doit être https:// plutôt que market:// ou l'appareil essaiera de
// charge les deux URL et seule la dernière gagnera. (En particulier FireFox, où une boîte de dialogue "Êtes-vous sûr" apparaîtra)
// sur iOS, nous pouvons nous connecter directement à l'App Store car notre commutateur d'application se déclenchera avant le commutateur
// Si vous avez une application Web mobile, votre solution de repli pourrait être celle-ci à la place.
fallbackLink = isAndroid ? 'https://www.facebook.com/webinkmarseille/' :'fb://profile/webinkmarseille' ;
}
// Maintenant, nous attendons simplement que tout s'exécute, si l'utilisateur est redirigé vers votre application personnalisée
// le délai d'attente ci-dessous ne se déclenchera jamais, si une application personnalisée n'est pas présente (ou si l'utilisateur est sur le bureau)
// nous remplacerons l'URL actuelle par le fallbackLink (URL de magasin ou URL de bureau selon le cas)
window.setTimeout(function (){ window.location.replace(fallbackLink); }, 1);
})();</script> |
Partager