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.