我有youtube的网址:
<iframe class="embed-responsive-item" ng-src="https://www.youtube.com/embed/s7gJ74ARN84" allowfullscreen=""></iframe>
如果我在我的本地html文件中使用它,它可以很好地播放。但是当我在phonegap ios app html页面粘贴相同内容并在ios模拟器中运行时,它会在我点击视频时显示以下错误:
Blocked a frame with origin "https://www.youtube.com" from accessing a frame with origin "file://".
The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "file". Protocols must match.
解决方案:
它不是在模拟器中工作,而是在移动设备上工作,这是我的最终目标。
答案 0 :(得分:0)
答案 1 :(得分:0)
@Manish, 因为你已经处理过CORS问题,所以你得到的错误是:
请求访问的帧具有“https”协议,帧为 access具有“文件”协议。协议必须匹配。
既然它不是CORS,你有没有摆脱iframe?如果可行,也许您需要的是隐藏的<div>
。
杰西
答案 2 :(得分:0)
请确保您已安装cordova-plugin-whitelist
然后在 config.xml 上添加此行
<!-- Whitelist the domain -->
<allow-navigation href="https://*youtube.com/*"/>
如果要将访问所有URL的权限列入白名单,则可能要使用此功能
但是,如果您的应用程序可以通过脚本注入,则必须小心,这将是一个安全漏洞
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
答案 3 :(得分:-3)
嘿,这只是一个非常小的问题
你的链接是这个=&gt; &#34; https://www.youtube.com/embed/s7gJ74ARN84&#34;
但你必须将其改为
此链接&#34; // www.youtube.com/embed/s7gJ74ARN84"
请记住,当您尝试在网站中加载安全内容时,只需从链接中删除协议
即可