Как перенаправить приложение Mobile Safari на приложение для iOS (например, Quora)? - PullRequest
15 голосов
/ 13 марта 2012

На моем iPhone я только что заметил, что если я выполню поиск Google (в Mobile Safari) и выберу результат на quora.com, на странице результатов будет запущено собственное приложение Quora на моем телефоне.

Как это сделать?В частности, это обнаружение агента пользователя и использование схемы URL-адреса iOS?Может ли он сказать, установлено ли нативное приложение и / или перенаправлен ли он в магазин приложений?

Ответы [ 3 ]

15 голосов
/ 24 сентября 2012

Я отправляю ответ на свой собственный (но изначально относившийся к Ruby-on-Rails) вопрос здесь: Rails: redirect_to 'myapp: //' для вызова приложения iOS из мобильного сафари

Вы можете перенаправить с помощью JavaScript window.location.

Пример кода:

<html><head>
    <script type="text/javascript">
      var userAgent = window.navigator.userAgent;
      if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {
        window.location = "myiosapp://"
      }
    </script>
  </head>
  <body>
    Some html page
  </body>
</html>
5 голосов
/ 04 декабря 2014

Просто небольшое улучшение кода JS, если приложение не установлено, оно отправит пользователя в itunes store;)

<script type="text/javascript">

    // detect if safari mobile
    function isMobileSafari() {
        return navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/)
    }
    //Launch the element in your app if it's already installed on the phone
    function LaunchApp(){
      window.open("Myapp://TheElementThatIWantToSend","_self");
    };

    if (isMobileSafari()){
        // To avoid the "protocol not supported" alert, fail must open itunes store to dl the app, add a link to your app on the store
        var appstorefail = "https://itunes.apple.com/app/Myapp";
        var loadedAt = +new Date;
        setTimeout(
          function(){
            if (+new Date - loadedAt < 2000){
              window.location = appstorefail;
            }
          }
        ,100);
        LaunchApp()

    }

</script>
4 голосов
/ 13 марта 2012

Вы можете запустить приложение, используя пользовательскую схему URL , зарегистрированную вашим приложением во время выполнения iOS.Затем на своем веб-сайте напишите код для обнаружения входящего User-Agent и, если обнаружена iOS, создайте ваши собственные URL-адреса вместо обычных http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...