Невозможно проверить, установлено ли приложение с веб-страницы.Вы можете сделать это внутри другого приложения, проверив, может ли ваша схема URL открываться с помощью метода -canOpenURL: UIApplication, но не существует эквивалентного ему javascript.
Однако вы можете использовать следующий обходной путь:
<script language="javascript">
function open_appstore() {
window.location='http://itunes.com/';
}
function try_to_open_app() {
setTimeout('open_appstore()', 300);
}
</script>
<a onClick="javascript:try_to_open_app();" href="yourappurl:">App name</a>
Этот код установит тайм-аут для ссылки, которая вызовет функцию open_appstore, если этот тайм-аут закончится.Поскольку ваша ссылка указывает на пользовательский URL-адрес приложения, Safari попытается открыть эту ссылку и, если сможет, откроет приложение и остановит таймер, поэтому ссылка AppStore не будет открыта.
Если приложениессылка не может быть открыта, когда таймер истекает, он отображает всплывающее сообщение об ошибке, в котором говорится, что он не может открыть страницу (не может избавиться от этого), но он немедленно перейдет в AppStore и отклонит эту ошибку.
iOS 9 добавляет действительно приятную функцию, которая позволяет вашему приложению открывать URL http / s: Универсальные ссылки
В iOS 10 , когда вы нажимаете на ссылку и приложение установлено, появляется всплывающее окно с надписью « Открыть в [Имя приложения] ».Если пользователь не нажмет « Open » в данном timeout
, это решение будет использовать запасной вариант.Поскольку 300 мс слишком коротки, чтобы что-то нажимать, это решение всегда терпит неудачу на iOS 10 .