2013-10-26 1 views
11

Я пытаюсь использовать API-интерфейс Skype javascript и замечаю какое-то безумие: если моя страница HTTP, все работает нормально (все кнопки skype и skype: protocol hrefs), но как только я переведу его на HTTPS, он ломается в Chrome, iPad и iPhone. Корпус и точка:Skype URI не работает под 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

Это на своем сайте, и это не workie ...

Может кто-нибудь предлагает некоторые серии танцев дождя, которые я должен сделать, чтобы исправить это? Молиться богам Skype? Я всего лишь смертный.

+1

Просто дикая догадки: Ресурсы загружаемые из API выбираются с помощью HTTP, а какой-то браузера не забирает HTTP Elements, когда сам сайт использует HTTPS (по соображениям безопасности). Возможно, вы сможете настроить это. –

+0

На «http» или «https» они оба запрашивают запуск программы Skype для меня в Chrome 30. – MackieeE

+0

Да, вы можете приобрести skype-uri.js через http или https, проблема в том, когда я получаю его через HTTPS, когда вы нажимаете кнопку Skype, вы говорите, что у вас нет установленного Skype (когда я это четко делаю), но когда я переключаю все под HTTP - он волшебным образом отлично работает. –

ответ

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 или что-то подобное, поэтому копание в их коде может вызвать решение.

Возможно, вы можете отрегулировать этот уродливый workaround?

4

В скрипте щелчка создается 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>