我正在开发 Chrome 打包应用程序(不是旧的打包应用程序);我的应用程序需要包含一个沙盒 iframe
(运行第 3 方 HTML/JS 代码),其中我需要使用 webview
或 iframe
显示 Youtube 视频。两者都不起作用;我无法播放任何 Youtube 视频。 (但是,webview
在沙盒之外使用时有效 iframe
。)
主 HTML 文件如下所示:
<iframe src="sandbox.html"></iframe>
文件
sandbox.html
在 manifest.json
中声明.它看起来像这样(我正在尝试两种播放 Youtube 视频的替代方法):<webview width="420" height="315" src="http://www.youtube.com/embed/XGSy3_Czz8k"></webview>
<iframe width="420" height="315" src="http://www.youtube.com/embed/XGSy3_Czz8k"></iframe>
当我运行这个应用程序时,
webview
是一个空的白色矩形。 iframe
另一方面,包含封面图像和视频的 Youtube 播放器控件。首先,为什么是
webview
空的? webview
只要我使用 webview
就可以在这个应用程序中工作(播放视频)沙盒外iframe
.当webview
在沙箱内,它默默地拒绝加载任何东西。其次,当我运行这个应用程序时,控制台中有错误:
GET chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js net::ERR_FAILED www-embed-player.js:140
GET chrome-extension://dliochdbjfkdbacpmhlcpmleaejidimm/cast_sender.js net::ERR_FAILED www-embed-player.js:140
GET chrome-extension://hfaagokkkhdbgiakmmlclaapfelnkoah/cast_sender.js net::ERR_FAILED www-embed-player.js:140
GET chrome-extension://fmfcbgogabcbclcofgocippekhfcmgfj/cast_sender.js net::ERR_FAILED www-embed-player.js:140
GET chrome-extension://enhhojjnijigcajfphajepfemndkmdlo/cast_sender.js net::ERR_FAILED www-embed-player.js:140
当我加载
iframe
时会出现这些错误如上所示,在沙盒页面内。这些错误很奇怪(为什么 Chrome 试图从一些随机的 Chrome 扩展程序中加载一个 JS 文件?)当我尝试在
iframe
中开始播放视频时,有时我会收到来自 Youtube 播放器的消息“发生错误”,有时没有消息但播放器变黑了。在所有情况下,我在控制台上都有这个错误: XMLHttpRequest cannot load https://www.youtube.com/get_video_info?html5=1&video_id=S2VXOd3uXh8&cpn=Rso…=en_US&sts=16309&lact=11140&width=300&height=300&iframe=1&c=web&cver=html5. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
我的
manifest.json
拥有所有必要的权限: "permissions": [
"http://www.youtube.com/*", "https://www.youtube.com/*", "webview" ],
"sandbox": {
"pages": [ "sandbox.html" ]
}, ...
我试过
<object data=...>
, <embed src=...>
, MediaElement - 它们在 Chrome 应用程序中根本不起作用。我不知所措,在网上也找不到任何相关信息。
webview
当它在沙盒中时为空白 iframe
? webview
或 iframe
在沙盒中工作 iframe
在打包的 Chrome 应用程序中显示 Youtube 视频? 最佳答案
您应该将 URL 直接加载到 webview
中。 ,而不是通过 iframe
.
您的主要 HTML 应包含:
<webview width="420" height="315" src="http://www.youtube.com/embed/XGSy3_Czz8k"></webview>
直接地。
我尝试加载您的 URL http://www.youtube .... 进入浏览器示例应用程序,它在 a 中加载 URL 并且似乎工作正常。
可以在此处找到浏览器示例应用程序以供引用:
webview-samples/browser
关于iframe - Webview 和 iframe 无法在 Chrome 打包应用程序的沙盒 iframe 中显示 Youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25678289/