2010-12-09 7 views
62

iTunes, App Store et YouTube sur iOS enregistrent clairement les modèles d'URL http: // ... pour ouvrir leurs applications.Possible de gérer vos propres schémas d'URL http dans iOS?

Quelqu'un peut-il faire cela, pas seulement votre propre protocole?

La raison pour laquelle je veux faire ceci est que je travaille sur une application pour un festival. Je veux "intercepter" des liens vers des pages spécifiques sur le site Web et lancer l'application à la place, si elle est installée.

Jusqu'à présent, je n'ai pas eu beaucoup de chance

Répondre

1

Non, vous pouvez uniquement enregistrer des schémas personnalisés.

Et je ne vois pas d'Apple le faire, que ce soit ...

+0

Bummer. Apple le fait certainement. Email (ou SMS) vous-même et le lien du magasin iTunes (http: // itunes ....). Cliquez dessus dans mail sur l'iPhone. L'App Store s'ouvre, sans aller d'abord à Safari. – baswell

+0

Non. Pour le courrier électronique, il y a (évidemment) le schéma mailto: pour sms c'est sms: et dans le cas d'iTunes je pense qu'ils utilisent le http :, ordinaire, au premier appel, mais redirigent vers autre chose (qui peut être fait de manière transparente afin que l'utilisateur ne le voit pas). – Eiko

+0

@HappyFlow Vous n'êtes pas sûr de ce que vous essayez de me dire? – Eiko

5

Malheureusement, je ne pense pas que vous pouvez le faire. Vous pouvez enregistrer votre propre schéma personnalisé, par exemple yourFestival: // et transmettre des données du monde extérieur (SMS, e-mail, autres applications) à votre application.

j'ai écrit un billet de blog sur ce ici: Using custom schemes and passing data between iOS apps.

J'espère que cela aide.

59

La façon dont vous pouvez le faire pour "http: //" URL (et ce que je pense que Apple et Spotify faire) est de:

  1. inscrire un schéma d'URL personnalisé like the other answers have shown.

  2. Configurez votre URL HTTP pour qu'elle pointe vers une véritable page Web.

  3. Placez un script sur cette page pour rediriger vers votre URL personnalisée si vous êtes sur iOS.

Par exemple, voici un exemple de page qui vous amène à l'application Twitter pour un utilisateur particulier ou le site Web Twitter selon si vous êtes sur le web ou sur votre appareil iOS:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Twitter</title> 
</head> 
<body> 
    <script type="text/javascript"> 
     var username = document.location.search.substr(1); 
     document.location.replace(
      "standalone" in window.navigator ? 
      'twitter:@'+username :    // iOS 
      'http://twitter.com/'+username); // others 
    </script> 
</body> 
</html> 

Essayez-ici: http://bl.ocks.org/d/3153819/?mckamey

+1

Oui, c'est ce que je fais maintenant.Pas tout à fait comme l'App Store le fait car il va directement à l'App Store sans aller d'abord à Safari. – baswell

+0

Si vous visualisez une source sur une page iTunes (par exemple, http://itunes.com/apps/instagram), ils ont un script attaché à body onload qui s'il détecte qu'il fonctionne sur iOS ouvre la même recherche mais avec un " itms: // "URL. Lorsque vous le visitez avec un iPhone, il rebondit d'abord sur l'application iTunes, puis sur l'application AppStore. Donc, je pense qu'ils utilisent une stratégie similaire commutation juste plus rapide. – mckamey

+1

c'est une très bonne approche, merci pour la réponse – RichVel

33

iOS 9 prend en charge Universal Links, ce qui permet iOS de lancer une application basée sur http:// URL standard (basée sur le hostname) sans l'utilisateur avoir à passer par Safari.

Il nécessite une configuration de serveur Web (vous avez besoin d'un site Web), mais une fois l'installation enregistrée, l'application enregistrée ouvrira le lien à la place de Safari.

Pour les utilisateurs qui n'ont pas iOS 9, vous pouvez utiliser Smart Banners pour faciliter l'expérience.

+2

Merci. Cela devrait être la réponse acceptée maintenant. – RajV

Questions connexes