Простой ответ, скорее всего, нет, поскольку у вас мало контроля над тем, как отдельные приложения будут обрабатывать ссылки. Сложный ответ заключается в том, что вы должны что-то с этим делать. Обратите внимание, что не всегда требуется возвращать полную веб-страницу — на Android с Chrome вы можете активировать перенаправление 307 прямо на намерение Chrome.
Вы можете настроить простой веб-сервер, который при проверке связи возвращает `window.location = 'test://'.
Или, что еще лучше, вы можете попробовать открыть схему URI в iframe, а затем вернуться к веб-URL, если приложение отсутствует. Этого можно добиться с помощью следующих механизмов:
- на iOS 9 используйте универсальные ссылки
- в Chrome (и скоро в Firefox 41.0!) используйте Chrome Intents
- во всех других браузерах используйте 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>
Именно этим мы и занимаемся в моей компании branch.io. Мы постоянно сталкиваемся с изменениями в браузерах и веб-просмотрах, потому что всегда есть новые сценарии для покрытия. При принятии решения о том, как внедрить пользователя в ваше приложение, важно посмотреть на строку пользовательского агента.
person
st.derrick
schedule
14.09.2015