我正在開發Chrome打包的應用(不是傳統打包的應用);我的應用程序需要包含一個沙盒iframe
(用於運行第三方HTML/JS代碼),其中我需要使用webview
或iframe
來顯示Youtube視頻。兩者都不起作用;我無法播放任何Youtube視頻。 (該webview
作品,然而,當沙盒iframe
外使用)Webview和iframe無法在Chrome打包應用中的沙盒iframe中顯示Youtube視頻
主要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
中的視頻時,有時會收到消息「An error occurred」 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應用程序。
我很茫然,無法在Web上找到任何相關信息。
爲什麼
webview
空白時,它裏面是一個沙盒iframe
?有什麼我可以做,使以封裝Chrome應用沙盒裏面
iframe
或webview
工作iframe
顯示Youtube視頻?
可能相關:(的WebView在Chrome瀏覽器擴展標記不可用)[HTTPS:/ /code.google.com/p/chromium/issues/detail?id=250838] – winitzki 2014-09-05 19:04:31
似乎這是行不通的。一些相關鏈接:[https://productforums.google.com/forum/#!category-topic/youtube/playing-and-watching-videos/chrome/AY5QGdPhXlE] – winitzki 2014-09-05 21:50:11
谷歌說「不會修復」[https:///code.google.com/p/chromium/issues/detail?id=180390] – winitzki 2014-09-05 22:11:39