Skype URI在Chrome,iPad,iPhone上无法在HTTPS下运行

时间:2013-10-26 12:05:43

标签: javascript skype

我正在尝试使用Skype javascript API并注意到一些疯狂:如果我的页面是HTTP,一切正常(所有skype按钮和skype:protocol 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众神祈祷?我只是一个凡人。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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),因此浏览器拒绝加载它。也许,Skype SDK中的JavaScript使用window.open或类似的东西,因此在他们的代码中挖掘可能会带来一个解决方案。

也许你可以调整这个丑陋的workaround