Jak otworzyć rodzimą aplikację iOS z aplikacji internetowej

streszczenie Mam aplikację z prawidłowo działającym schematem adresów URL, który chciałbym uruchomić z aplikacji internetowej przechowywanej na ekranie głównym, a normalne metody przekierowania JavaScript wydają się nie działać.

Detale Próbuję utworzyć aplikację internetową iOS, która zostanie otwarta w trybie pełnoekranowym z łącza zapisanego na ekranie głównym. Aplikacja internetowa musi otworzyć określoną natywną aplikację. Zarejestrowałem już schemat url dla natywnej aplikacji i sprawdziłem, czy działa poprawnie - mogę otworzyć natywną aplikację, wpisując schemat bezpośrednio w moim pasku adresu Safari, na przykład. Mogę także otworzyć go z innych aplikacji, używając+openURL: metodaUIApplication. Chciałbym również otworzyć go z pewnymi argumentami z rodzimej aplikacji internetowej, którą można dodać do ekranu głównego.

To, co próbuję zrobić, to używanie JavaScript tak jak w natywnej aplikacji:

<code>window.location = "myapp://myparam";
</code>

Podczas korzystania z tego kodu w aplikacji internetowej otrzymuję powiadomienie ostrzegawcze:

„Nie można otworzyć myWebAppName - nie można otworzyć nazwy myWebAppName. Błąd„ Nie można wyświetlić tego adresu URL ”.”.

Ten sam javascript podczas wykonywania w Safari działa poprawnie. Otrzymuję ten sam wynik za pomocąwindow.location.replace("myapp://myparam").

HTML dla aplikacji internetowej to:

<code><!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>
</code>

Co ja tu robię źle? Jestem niedoświadczony w obsłudze JavaScript i mobilnej sieci, więc podejrzewam, że po prostu brakuje mi czegoś oczywistego.

questionAnswers(4)

yourAnswerToTheQuestion