2009-11-05 4 views
1

Assez facile pour enregistrer un gestionnaire de protocole personnalisé afin qu'une application native soit lancée par une URL dans Safari. Cependant, cela laisse la fenêtre du navigateur actuelle ouverte. Si l'application fournit ensuite un lien vers une URL (via openURL), cette URL s'ouvrira dans une nouvelle fenêtre Safari, en ignorant la fenêtre existante. J'ai posé une question ici sur le chargement dans la même fenêtre, et il a été suggéré que l'utilisation de balises #anchor pour différencier le contenu mais en utilisant le même URL confondrait Safari dans la réutilisation d'une fenêtre, mais ce n'est pas vrai. Safari lance une nouvelle fenêtre même lorsque les URL sont absolument identiques, y compris la balise #anchor. Ma prochaine pensée a été de fermer la fenêtre via window.close() javascript avant d'ouvrir l'URL pour l'application native. Mais je ne peux pas le faire fonctionner. Si j'utilise un appel ajax pour l'URL, il ne lance pas réellement l'application native. Si j'utilise window.open (url), il annule la fermeture de la fenêtre précédente, que j'ouvre l'URL avant ou après l'appel de window.close().Comment fermer la fenêtre iphone Safari avant de lancer l'application native?

Est-ce que quelqu'un connaît un moyen de fermer la fenêtre Safari en cours avant de lancer une application native via une URL?

Répondre

1

Je ne crois pas que ce soit possible, même si je peux me tromper.

0

Étant donné que le navigateur safari dans iphone ne supporte pas entièrement l'exécution javascript, ce n'est pas possible.

Sinon, si tu veux faire pour le système PC/Mac, il est possible en utilisant le code javascript

Astuce: appel d'une méthode javascript sur cliquant sur le url.In cette méthode crée une nouvelle instance de la fenêtre pour ouvrir en utilisant window.open, et enfin fermez la fenêtre parent en utilisant self.close(); ou window.close();

Questions connexes