J'ai trouvé que la réponse sélectionnée travaille pour le navigateur des applications, mais j'ai eu des problèmes avec le code de travail non navigateur des applications qui mettent en œuvre un UIWebView
.
Le problème pour moi était d'un utilisateur sur l'application Twitter, cliquez sur un lien qui les mènerait à mon site par le biais d'un UIWebView
dans l'application Twitter. Puis, quand ils ont cliqué sur un bouton de mon site Twitter essaie d'être de fantaisie et de ne compléter l' window.location
si le site est accessible. Donc ce qui arrive est un UIAlertView
apparaît disant êtes-vous sûr de vouloir continuer et puis redirige immédiatement à l'App Store, sans une seconde de popup.
Ma solution consiste à les iframes. Cela évite l' UIAlertView
présentés permettant pour une simple et élégant de l'expérience utilisateur.
jQuery
var redirect = function (location) {
$('body').append($('<iframe></iframe>').attr('src', location).css({
width: 1,
height: 1,
position: 'absolute',
top: 0,
left: 0
}));
};
setTimeout(function () {
redirect('http://itunes.apple.com/app/id');
}, 25);
redirect('custom-uri://');
Javascript
var redirect = function (location) {
var iframe = document.createElement('iframe');
iframe.setAttribute('src', location);
iframe.setAttribute('width', '1px');
iframe.setAttribute('height', '1px');
iframe.setAttribute('position', 'absolute');
iframe.setAttribute('top', '0');
iframe.setAttribute('left', '0');
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
};
setTimeout(function () {
redirect('http://itunes.apple.com/app/id');
}, 25);
redirect('custom-uri://');
EDIT:
Ajouter la position absolue de l'iframe, donc lorsqu'il est inséré, il n'est pas un hasard peu d'espace au bas de la page.
Aussi il est important de noter que je n'ai pas trouvé la nécessité de cette approche avec Android. À l'aide de window.location.href
devrait fonctionner correctement.