Как открыть нативное приложение 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 и мобильном вебе, поэтому подозреваю, что мне просто не хватает чего-то очевидного.

Ответы на вопрос(4)

Ваш ответ на вопрос