2013-10-26 12 views
11

Sto tentando di utilizzare l'API JavaScript javascript e ho notato una certa follia: se la mia pagina è HTTP, tutto funziona correttamente (tutti i pulsanti skype e skype: protocol hrefs) ma una volta spostato su HTTPS si interrompe in Chrome, iPad e iPhone. Caso e il punto:Gli URI di Skype non funzionano con HTTPS su Chrome, iPad, iPhone

pulsanti di chiamata lavorare qui: http://developer.skype.com/skype-uris/skype-uri-tutorial-webpages#uriTJS_Generator

pulsanti di chiamata non funzionano qui: https://developer.skype.com/skype-uris/skype-uri-tutorial-webpages#uriTJS_Generator

Questo è sul proprio sito e non è workie ...

Can qualcuno suggerisce qualche serie di danze della pioggia che dovrei fare per risolvere questo problema? Pregando per gli dei Skype? Sono solo un semplice mortale.

+1

Solo una supposizione selvaggia: Le risorse si sta caricando dalla API vengono prelevati via HTTP, e alcuni del browser non prendere Elementi HTTP quando il sito stesso è utilizzando HTTPS (per motivi di sicurezza). Potresti essere in grado di configurarlo. –

+0

Su entrambi 'http' o' https', entrambi richiedono di avviare il programma Skype per me in Chrome 30. – MackieeE

+0

Sì - è possibile acquisire skype-uri.js tramite http o https, il problema è quando lo acquisisco tramite HTTPS, quando fai clic sul pulsante Skype dice che non hai installato Skype (quando lo faccio chiaramente), ma quando cambio tutto sotto HTTP - funziona magicamente di nuovo bene. –

risposta

2

Penso che questo sia un bug (o una politica di sicurezza abbastanza restrittiva) in Chrome (e in altri browser). Nella console sviluppatore Chrome ottengo:

[blocked] The page at https://developer.skype.com/skype-uris/skype-uri-tutorial-webpages#uriTJS_Generator ran insecure content from skype:echo123;+16505550123?call. 

si tratta skype:echo123;+16505550123?call come un URL e lo trova non essere sicuro (vale a dire non https) modo che il browser si rifiuta di caricarlo. Probabilmente, il codice JavaScript nell'SDK di Skype utilizza window.open o qualcosa di simile, quindi scavare nel loro codice potrebbe far apparire una soluzione.

Forse è possibile adattare questo brutto workaround?

4

Lo script di clic sta creando iframe e aggiungendo src = "skype: echo123; +16505550123? Call" e quindi come mb21 si verifica un errore o "politica di sicurezza restrittiva".

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) 
} 

ne dite di semplicemente utilizzando:

<a onclick="window.location='skype:echo123;+16505550123?call';return false;" href="">link</a> 
Problemi correlati