1

私の流星反応のアプリでは、いくつかのYouTube動画を埋め込んでいます。これらはデバッグモードのすべてのデバイスでうまく動作しますが、実際には(Chrome Inspectを使用してデバッグすることはできません)、モバイルデバイスには表示されません。ブラウザでは常に完全に動作します。流星:YouTubeのビデオは、iOSとAndroidの生産には表示されません。

私の実装では、まず単純なiframeを使ってビデオを埋め込みました。これはうまくいかなかったので、Youtube-API経由で動画にアクセスするreact-youtubeパッケージを使用してみました。これはまったく同じ挙動をもたらした。

どうすればこの問題を解決できますか?

それはCORSエラーかもしれないが、私の携帯-config.jsのに

App.accessRule('youtube.com'); 
App.accessRule('http://*'); 
App.accessRule('https://*'); 

を追加することは助けにはなりませんでした。私はその後、私のプロジェクトにbrowser-policyパッケージを追加し、Meteor.startup()関数に

BrowserPolicy.content.allowOriginForAll("www.youtube.com"); //the www. was important 
BrowserPolicy.content.allowOriginForAll("s.ytimg.com"); 
BrowserPolicy.content.allowMediaDataUrl(); 

を追加することで、ブラウザで投げたすべてのエラーを修正しようとしたが、これはまた、モバイルプラットフォーム上では結果がありませんでした。

+0

は、あなたがこの問題を解決しましたか? – MastaBaba

+0

実際にはありません。私は "反応プレイヤー"と呼ばれる別のプラグインを使用し、それは働いた... – Taxel

+0

ありがとう。私は別のプラグインを使用して終了しました:https://stackoverflow.com/questions/44170489/how-to-play-youtube-videos-inside-meteor-in-cordova/44460295#44460295 – MastaBaba

答えて

0

サーバーのURL以外のリソースには、特定のアクセスを許可する必要があります。

があなたのmobile-config.jsファイルに次のルールを追加します(このファイルは、ルートプロジェクトディレクトリにする必要があります):

App.accessRule('youtube.com');

+0

回答ありがとうございます。残念ながらそれはありません作業。私は 'App.accessRule( 'youtube.com');' を追加してもうまくいきませんでした。また、http:// *と 'https:// * 'をルールとして追加しました。何の効果もありませんでした。 – Taxel

+0

私は参照してください。まあ、問題がiOSデバイスだけの場合は、安全なサイト(htpps)であることから、サーバーからYouTubeのhttpサイトを呼び出さないかどうかを確認してください。 iOSは安全でないサイトへの接続をブロックします。それがうまくいかないと言うと、プレーヤーのプレビューウィンドウはモバイルに表示されますか? – Ruben

+0

問題はAndroid搭載端末でも発生します(実際にはデバッグはできますが、問題はiOSでも発生すると聞いています)。プレーヤのプレビューは表示されません。実際、レンダリングはまったくありません。見ることができるのは、他のHTMLがプレイヤーがいる場所の下にレンダリングすることだけです。これから、iframeは指定された寸法で作成されていると判断されますが、そのフレーム内のページはロードされていません。 – Taxel