Comment ouvrir un natif de l'application iOS à partir d'une application web

Résumé j'ai une application avec une fonctionne correctement schéma d'URL que je voudrais lancer à partir d'une application web stockées sur l'écran d'accueil, et la normale de redirection JavaScript méthodes ne semblent pas fonctionner.

Détails je suis en train de créer une web app iOS, être ouvert en mode plein écran à partir d'un lien enregistrés sur l'Écran d'Accueil. L'application web doit ouvrir une application native. J'ai déjà enregistré le schéma d'url pour l'application native, et vérifié qu'il fonctionne correctement, je peux ouvrir l'application native en tapant le schéma directement dans ma barre d'adresse de Safari, par exemple. Je peux aussi ouvrir d'autres applications à l'aide de la +openURL: méthode de UIApplication. Je voudrais aussi l'ouvrir avec certains arguments d'un natif application web qui peut être ajouté à l'écran d'accueil.

Ce que j'essaie de faire est d'utiliser JavaScript comme à l'intérieur de l'application native:

window.location = "myapp://myparam";

Lors de l'utilisation de ce code à l'intérieur de l'application web, je reçois une alerte disant:

"Impossible d'Ouvrir le myWebAppName - myWebAppName pas pu être ouvert. L'
l'erreur a été "Cette URL ne peut pas être affichée".".

Cette même javascript lors de l'exécution Safari fonctionne correctement. J'obtiens le même résultat à l'aide window.location.replace("myapp://myparam").

Le code html pour l'application web est:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>untitled</title>
    <meta name="generator" content="TextMate http://macromates.com/">
    <meta name="author" content="Carl Veazey">
    <!-- Date: 2012-04-19 -->
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" />
</head>
<body>
    <script type="text/javascript" charset="utf-8">
        if (window.navigator.userAgent.indexOf('iPhone') != -1) {
            if (window.navigator.standalone == true) {
                window.location = "myapp://myparam";
            } else {
                document.write("please save this to your home screen");
        };} else {
                alert("Not iPhone!");
                document.location.href = 'please-open-from-an-iphone.html';
        };
    </script>
</body>
</html>

Ce que je fais mal ici? Je suis assez inexpérimenté avec javascript et web mobile donc je pense que je suis juste en manque de quelque chose d'évident.

  • ne pouvez pas vous rediriger vers l'app store lien?
  • désolé, que voulez-vous dire exactement? comme puis-je ouvrir l'app store à partir de mon application web? edit: je peux ouvrir le natif de l'application maps, par exemple, je soupçonne que le système utilise le protocole http est pourquoi cela fonctionne. Cela ne fonctionnera pas pour mon application, malheureusement.
  • donc en tapant myapp://myparam dans la barre d'url fonctionne?
  • qui ne serait pas faire beaucoup. Il essaie d'ouvrir l'application native. Ne pas ouvrir la page de l'appli sur iTunes. Si l'utilisateur est redirigé vers l'App Store lien, il serait plus dirigé vers la page de l'app dans iTunes sur l'iDevice... il ne serait pas ouvrir l'application elle-même.
  • c'est correct.
  • Hm, pensait que c'était un param question. Très bizarre, j'ai utilisé de la fenêtre.emplacement avant de la main sans aucun problème. Avez-vous essayé de la fenêtre.ouvert(myapp://myparam)
  • Ce simple fichier HTML ouvrez l'application, s'il existe, sinon ouvrir le magasin URL. Il fonctionne pour Android et iOS. gist.github.com/noelrocha/e423ff9ec98011e10ef7
  • Salut! Je vois beaucoup de questions de ce genre, mais.. avez-vous jamais eu besoin de REVENIR à l'application web?

InformationsquelleAutor Carl Veazey | 2012-04-19