10

iframe にいくつかの soundcloud ウィジェット プレーヤーを含む phoneGap/Cordova コードを作成しました。コードは、Android および iOS のデスクトップ ブラウザーで問題なく動作していました。

本日、iOS版で音楽の再生が停止しました。また、モバイル サファリや、さまざまな iPhone やエミュレータでコードを実行しようとしましたが、結果は同じでした。

他のすべてのプラットフォームは、意図したとおりに機能しています。

Xcode コンソールには何も異常は表示されませんが、モバイル サファリにはエラーが表示されます。

>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.

これが以前にあったかどうかはわかりませんが、私が見つけることができる最高のものです。

コードの対応する部分は次のとおりです。

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

これは本当にクロスドメインの問題なのだろうか。助けていただければ幸いです。

ありがとう!

小さな補遺: 物理的な iPhone で実行すると、次のようなメッセージが表示されることがあります。

Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)

しかし、常にそうであるとは限らず、(非) 機能に違いはありません。

4

1 に答える 1

1

これは、soundcloud js プレーヤーが、soundcloud のドメイン (JSON と実際のオーディオ) からリソースをロードすることが原因である可能性があります。これは、一部のブラウザーが安全でないと定義しています。

ワイルドカード文字「*」を使用してhttp://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.htmlに従ってすべてのドメインをホワイトリストに登録して、それが機能するかどうかを確認できます。その場合、ホワイトリストを、コンテンツをロードしている特定のドメインに絞り込むことができます。

また、コードに w.soundcloud.com への参照があることに気付きましたが、これは正しいですか?

于 2013-04-24T06:02:57.787 に答える