2015-09-11 5 views
2

Я пытаюсь открыть приложение Native iOS, щелкнув ссылку по электронной почте. Я использовал «Custom url scheme». Если я нахожу «test: //» в браузере Safari, тогда откроется мое собственное приложение iOS. Но если я нажму ссылку «test: //» в электронной почте, то он будет префикс http как «http://test//» и не откроет приложение iOS. Я просмотрел множество ссылок и обнаружил, что "iOS needs a Webpage which will redirect to custom url of native iOS App", чтобы открыть приложение. Is it possible to open an app from email link without using a webpage redirects to app?Можно ли открыть приложение Native iOS с помощью пользовательской схемы URL-адресов без веб-страницы, предназначенной для пользовательского URL-адреса?

Advance, Спасибо за помощь!

+0

Вы не должны префикс его с http, и он будет работать –

+0

Спасибо за ответ. Если я нажму ссылку, как «test: //» в почте, то автоматически ее изменят на «http: // test //», а не открывает приложение – Sakthimuthiah

+1

URL-адрес обратного вызова всегда проверяет с помощью веб-страницы и перенаправляет на ваше приложение, без сафари вы не можете это сделать –

ответ

2

Простой ответ, скорее всего, нет, так как у вас мало контроля над тем, как отдельные приложения будут обрабатывать ссылки. Комплексный ответ заключается в том, что вы должны что-то сделать. Обратите внимание, что это не всегда требует возврата полной веб-страницы - на Android с Chrome вы можете запустить перенаправление 307 прямо к намерению Chrome.

Вы можете настроить простой веб-сервер, который при pinged возвращает `window.location = 'test: //'.

Или еще лучше, вы можете попытаться открыть схему URI в iframe, а затем вернуться к веб-URL, если приложение отсутствует. Это может быть достигнуто с помощью следующих механизмов:

  1. КСН 9, использовать Универсальную Links
  2. в Chrome (и в ближайшее время, Firefox 41.0!) Использовать Chrome Intents
  3. на всех других браузерах, использовать на стороне клиента Javascript

Вот пример на стороне клиента JavaScript:

<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> 

Это именно то, что мы d o в моей компании, branch.io. Мы постоянно имеем дело с изменениями в браузерах и веб-просмотрах, потому что всегда есть новые сценарии для покрытия. Важно, чтобы посмотреть на строку пользовательского агента при принятии решения о том, как отключить пользователя в вашем приложении.

+0

Спасибо, это сработало – Sakthimuthiah