Ошибка запуска собственного приложения из веб-приложения - iOS - URL не отображается - PullRequest
4 голосов
/ 17 января 2012

У меня возникли некоторые проблемы при попытке вызвать родное приложение iOS из моего веб-приложения (с поддержкой apple-mobile-web-app). Всякий раз, когда я нахожусь в Safari, нажимая кнопку, чтобы открыть мое приложение с пользовательской схемой URL, это прекрасно работает.

Однако, когда я добавил его на домашний экран, я застрял с ошибкой: URL не может быть показан. Перенаправление на http или https работает нормально, но если я вызываю mysupercustomurlscheme: // я получаю сообщение об ошибке выше.

Я пытался открыть его с помощью document.location.href, window.location и т. Д. И т. Д., Но ничего не помогло, и у меня закончились идеи.

Если у кого-то есть идеи, я был бы очень рад их услышать.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 23 февраля 2015

Просто хотел опубликовать пример того, на что ссылается Тобиас.Вам необходимо разместить на своем сервере ссылки на электронные письма, социальные сети и т. Д. Просто подставьте в URI вашего приложения и ссылку в App Store .Обратите внимание, что iframe работает в большем количестве браузеров.

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                // Deep link to your app goes here
                document.getElementById("l").src = "my_app://";

                setTimeout(function() {
                    // Link to the App Store should go here -- only fires if deep link fails                
                    window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
                }, 500);
            };
        </script>
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
    </body>
</html>

Итак, если у пользователя установлено ваше приложение, ссылка с URI будет успешной, и вы будете существовать в браузере до сценария для перенаправления в App Storeможет быть вызвано.Если у пользователя нет вашего приложения, перенаправление происходит успешно (после краткого сообщения об ошибке).Я являюсь разработчиком в Branch , и мы используем его, поэтому не стесняйтесь задавать вопросы по реализации.

1 голос
/ 17 января 2012

Хорошо, вот несколько неуклюжий способ сделать это, но он работает и может помочь бедной душе, пытающейся достичь того же самого.

Во-первых, создайте простую ссылку HTML, как, по-видимому, обычнуюHTML-ссылки открываются в Mobile Safari, а не в полноэкранном режиме в веб-приложении.Ссылка

В redirect.html вы просто перенаправляете пользователя с помощью простого javascript.window.location = "mysupercustomurlscheme: //"

И это все!Это, конечно, не лучший способ сделать это, но это «довольно» плавно.Это то, что я придумал, по крайней мере, если у вас есть другие предложения, дайте мне знать.

Надеюсь, это кому-нибудь поможет!

...