Еще один замечательный (по крайней мере, работающий в последних версиях браузера) обходной путь - это проверить, находится ли окно браузера в фокусе после короткого времени ожидания, таким образом, вы можете показать диалоговое окно пользователю, только если схема URI не работает 1001 *
HTML:
<a class="uri-link" data-uri="qobuzapp://" href="#">URI</a>
Javascript (здесь используется jQuery):
var windowHasFocus;
$(window).focus(function() {
windowHasFocus = true;
}).blur(function() {
windowHasFocus = false;
});
function goToUri(uri) {
window.location = uri;
setTimeout(function(){
if (windowHasFocus) {
if (confirm('You do not seem to have Qobuz installed, do you want to go download it now?')){
window.location = 'http://www.qobuz.com';
}
}
}, 100);
}
$('a').on('click', function(){
goToUri($(this).data('uri'));
});
Вот рабочий jsFiddle, просто обновите его с помощью собственной схемы URI:
http://jsfiddle.net/mF6TZ/