11

我正在尝试使用 Skype javascript API 并注意到一些疯狂:如果我的页面是 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 众神祈祷?我只是一个凡人。

4

2 回答 2

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>
于 2013-11-12T15:08:10.273 回答
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?callURL 视为一个 URL,并发现它不安全(即 not https),因此浏览器拒绝加载它。可能,Skype SDK 中的 JavaScript 使用window.open或类似的东西,所以在他们的代码中挖掘可能会带来一个解决方案。

也许您可以适应这种丑陋的解决方法

于 2013-11-12T14:08:02.467 回答