我正在尝试使用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众神祈祷?我只是一个凡人。
答案 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?