【问题标题】:Meteor: Youtube videos don't show on iOS and Android in productionMeteor:YouTube 视频不会在 iOS 和 Android 上播放
【发布时间】:2017-08-16 02:45:45
【问题描述】:

在我的流星反应应用程序中,我嵌入了一些 YouTube 视频。这些在调试模式下的所有设备上都可以正常工作,但在生产中(我无法使用 Chrome Inspect 对其进行调试),视频不会出现在移动设备上。在浏览器中它总是可以完美运行。

在我的实现中,我首先使用了一个简单的 iframe 来嵌入视频。这不起作用,所以我尝试使用 react-youtube 包,它通过 Youtube-API 访问视频。这产生了完全相同的行为。

我该如何解决这个问题?

可能是 CORS 错误,但添加

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

对我的 mobile-config.js 没有帮助。然后我尝试将browser-policy 包添加到我的项目中,并通过添加修复它在浏览器中抛出的所有错误

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

到 Meteor.startup() 函数,但这在移动平台上也没有结果。

【问题讨论】:

标签: cordova youtube youtube-api youtube-iframe-api meteor-react


【解决方案1】:

您必须允许对服务器 URL 之外的资源进行特定访问。

在您的mobile-config.js 文件中添加以下规则(该文件应该在您的项目根目录中):

App.accessRule('youtube.com');

【讨论】:

  • 感谢您的回答,但不幸的是它不起作用。我添加了App.accessRule('youtube.com');,之后我还添加了'http://*''https://*' 作为规则,但也没有效果。
  • 我明白了。好吧,如果问题仅出现在 iOS 设备上,请检查您是否没有从服务器调用 youtube 的 http 站点,因为它是一个安全站点 (htpps)。 iOS 将阻止与非安全站点的连接。当你说它不起作用时,播放器预览窗口是否显示在移动设备上?
  • 这个问题也出现在Android设备上(实际上我只能在那里调试,但听说iOS也有这个问题)。播放器预览没有显示,实际上根本没有渲染。唯一可以看到的是其他 HTML 呈现在播放器所在的空间下方。由此我得出结论,正在创建具有指定尺寸的 iframe,但未加载该框架内的页面。
  • 我检查了插件站点,但没有发现任何关于生产中移动设备显示的问题。我不知道您在哪里托管了您的生产服务器,但您可以检查插件是否正确部署到它?我缺乏想法......
猜你喜欢
  • 2017-11-21
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多