Skype URI не работают под HTTPS на Chrome, iPad, iPhone
Я пытаюсь использовать API-интерфейс Skype javascript и замечаю некоторые сумасшествия: если моя страница является HTTP, все работает нормально (все кнопки skype и skype: протокол hrefs), но как только я переведу его на HTTPS, он разрывается в Chrome, iPad и iPhone. Случай и точка:
Кнопки вызова работают здесь:
http://developer.skype.com/skype-uris/skype-uri-tutorial-webpages#uriTJS_Generator
Кнопки вызова НЕ РАБОТАЮТ здесь:
https://developer.skype.com/skype-uris/skype-uri-tutorial-webpages#uriTJS_Generator
Это на их собственном сайте, и он не работает...
Может кто-нибудь предложить некоторые серии танцев дождя, которые я должен сделать, чтобы исправить это? Молиться богам Skype? Я всего лишь смертный.
Ответы
Ответ 1
При щелчке script создается iframe и добавляется src= "skype: echo123; +16505550123? call", а затем, как mb21, возникает ошибка или происходит "ограничительная политика безопасности".
function a(s, v, t) {
var u = true;
window.onblur = function () {
u = false
};
var r = document.getElementById(v);
if (r !== null) {
r.src = s //here error happens....
}
setTimeout(function () {
if (u) {
alert(Skype.installSkypeMsg);
Skype.tryAnalyzeSkypeUri("redirect", t);
window.location = Skype.SkypeClientDownloadUrl
}
}, 2000)
}
Как просто использовать:
<a onclick="window.location='skype:echo123;+16505550123?call';return false;" href="">link</a>
Ответ 2
Я думаю, что это ошибка (или довольно ограничительная политика безопасности) в Chrome (и других браузерах). В консоли разработчика Chrome я получаю:
[blocked] The page at https://developer.skype.com/skype-uris/skype-uri-tutorial-webpages#uriTJS_Generator ran insecure content from skype:echo123;+16505550123?call.
Он обрабатывает skype:echo123;+16505550123?call
как URL-адрес и считает, что он не защищен (т.е. не https
), поэтому браузер отказывается его загрузить. Вероятно, JavaScript в SDK Skype использует window.open или что-то подобное, поэтому копание в их коде может вызвать решение.
Возможно, вы можете адаптировать этот уродливый обходной путь?