Ho scritto codice PhoneGap/Cordova che include alcuni lettori di widget Soundcloud negli iframe. Il codice funzionava bene nei browser desktop, su Android e iOS.Iframe Soundcloud ha smesso di funzionare in iOS
Oggi la versione iOS ha smesso di riprodurre musica. Ho anche provato a eseguire il codice in Safari mobile e su diversi iPhone ed emulatori con lo stesso risultato negativo.
Tutte le altre piattaforme funzionano ancora come previsto.
console Xcode non mostra nulla di insolito, ma Safari Mobile mostra l'errore:
>Unsafe JavaScript attempt to access frame with URL http://domainname/ from frame with URL http://w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/12345. Domains, >protocolls and ports must match.
io non sono sicuro che questo è stato lì prima, ma è il migliore che ho trovato.
Qui è la parte seconda del codice:
SC.get('/resolve', {
url : 'http://soundcloud.com/' + trackURL[c]
}, function(track) {
SC.get('/tracks/' + track.id + '/comments', function(comments) {
if (c == 0) {
$("#track1").append("<div style='height:110px; white-space:normal;overflow:visible;'> <img src='" + track.artwork_url + "' class='trackTitle' > <img src='img/play.png' id='play1' class='mainPlay'/> <h3 style='margin-top:75px;margin-left:120px; font-size:10px; position:absolute; line-height:10px;'> " + track.title + "</h3></div>");
$("#track1").css("background", "none");
$('#sc-widget1').attr("src", "http://w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/" + trackID[0]);
}
var widgetIframe = document.getElementById('sc-widget1');
widget1 = SC.Widget(widgetIframe);
$("#play1").on('click', function() {
widget1.toggle();
}
Mi chiedo se questo è davvero un problema cross-domain. L'aiuto è molto apprezzato
Grazie!
Piccolo addendum: Quando si esegue su un iPhone fisica a volte ottengo un:
Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
ma che non è sempre il caso e non fa la differenza per la (non) funzionalità.
Si è tentato di autorizzare il dominio in Cordova.plist? È solo una supposizione selvaggia. – bouscher
Perché non usi l'API multimediale con PhoneGap? http://docs.phonegap.com/en/2.6.0/cordova_media_media.md.html#Media –