Как перенаправить с Mobile Safari на родное приложение для iOS (например, Quora)?

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

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

Ответ 1

Я возвращаю ответ на свой собственный связанный (но изначально вопрос с 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>

Ответ 2

Просто небольшое улучшение 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 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>

Ответ 3

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