Как открыть нативное приложение iOS из веб-приложения
Резюм У меня есть приложение с правильно работающей схемой URL, которое я хотел бы запустить из веб-приложения, хранящегося на домашнем экране, и обычные методы перенаправления JavaScript, похоже, не работают.
Детал Я пытаюсь создать веб-приложение для iOS, которое открывается в полноэкранном режиме по ссылке, сохраненной на главном экране. Веб-приложение должно открывать определенное нативное приложение. Я уже зарегистрировал схему url для нативного приложения и убедился, что она работает правильно - я могу открыть нативное приложение, набрав схему, например, прямо в адресную строку Safari. Я также могу открыть его из других приложений, используя+openURL:
методUIApplication
. Я также хотел бы открыть его с определенными аргументами из собственного веб-приложения, которые можно добавить на домашний экран.
То, что я пытаюсь сделать, это использовать JavaScript, как в родном приложении:
<code>window.location = "myapp://myparam"; </code>
При использовании этого кода внутри веб-приложения появляется предупреждение:
"Невозможно открыть myWebAppName - не удалось открыть myWebAppName. Ошибка:« Этот URL не может быть показан ».".
Этот же javascript при выполнении в Safari работает правильно. Я получаю тот же результат, используяwindow.location.replace("myapp://myparam")
.
HTML-код для веб-приложения:
<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>
Что я здесь не так делаю? Я не очень разбираюсь в javascript и мобильном вебе, поэтому подозреваю, что мне просто не хватает чего-то очевидного.