iOS: открытие приложения с пользовательским URL-адресом, если оно установлено, в противном случае — itunes

Я реализовал умный баннер приложения для своего веб-сайта, чтобы перенаправить пользователя на наш Android или iOS. приложение. Анализируя пользовательский агент, я мог успешно перенаправить в приложение Android или Google Play Store (используя фильтр намерений): теперь я хотел бы сделать то же самое для iOS, открыв приложение, если оно установлено, и открыв iTunes в другом месте.

Мне удалось открыть приложение, если оно установлено, с помощью пользовательской схемы URL.

<a href="myurlscheme://main">

Теперь я хотел бы запустить iTunes, если приложение не установлено на устройстве. Как я могу этого добиться?

Спасибо


person Marco Zanetti    schedule 06.04.2016    source источник


Ответы (2)


Честно говоря, это довольно сложно реализовать самостоятельно. После того, как вы обнаружили пользовательский агент iOS, вы можете реализовать перенаправление JavaScript на своем сервере примерно так:

setTimeout(function() {
  window.location = "https://itunes.apple.com/path/to/your/app/";
}, 25);

// If "yourapp://" is registered, the user will see a dialog
// asking if want to open your app. If they agree, your app will 
// launch  immediately and the timer won't fire.
// If not installed, you'll get an ugly "Cannot Open Page" 
// dialogue and the App Store will launch when the timer expires.

window.location = "yourapp://";

Очевидно, что это не идеальное решение, и оно имеет массу неприятных крайних случаев, в первую очередь ошибку «Не удается открыть страницу», которую пользователи увидят перед перенаправлением в App Store, если у них не установлено ваше приложение. До недавнего времени, это можно было обойти достаточно удобным для пользователя способом, используя более детализированную версию этого скрипта. uri-scheme-and-universal-links" rel="nofollow">преднамеренно нарушил это в обновлении iOS 9.2.

Вы также можете включить универсальный Ссылки. Apple знает, что это досадная проблема, и пытается помочь. Универсальные ссылки позволяют использовать обычный URL-адрес страницы на вашем веб-сайте (что может быть простым перенаправлением в App Store без триггера пользовательского URL-адреса, вызывающего ошибку «Невозможно открыть страницу»), что перехвачены вашим телефоном и отправлены непосредственно в ваше приложение, если оно установлено. К сожалению, универсальные ссылки работают только в iOS 9+ и пока не работают при открытии во многих приложениях.

Лучшее решение — это комбинация вышеперечисленных методов: универсальные ссылки и ссылки на приложения везде, где они поддерживаются, и интеллектуальные перенаправления JavaScript в качестве запасного варианта. С этим довольно сложно справиться, поэтому лучшим вариантом может быть бесплатный сервис, такой как Branch.io (полное раскрытие: я работать с командой), чтобы позаботиться обо всех технических аспектах.

person Alex Bauer    schedule 06.04.2016
comment
Спасибо, Алекс, это работает безупречно (за исключением небольшого, не очень раздражающего всплывающего окна, хотите ли вы открыть эту ссылку с помощью приложения YOURAPP). - person Marco Zanetti; 14.04.2016
comment
Рад, что помог! - person Alex Bauer; 14.04.2016

Попробуйте это <meta"apple-itunes-app"content"app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL"

or

<a href="xxx://www.xxx.com">Open APP</a>
person Lee    schedule 06.04.2016
comment
Спасибо, Ли. Первое предложение работает, но это метатег, который (могу ошибаться) работает только в Safari, так что это не то, что мне нужно. Второй просто не работает, он только открывает приложение, если я его уже установил :-/ - person Marco Zanetti; 06.04.2016