我正在实现一个WebView片段,该片段从活动传递的HTML加载其内容。 基本上,HTML内容只是一个段落和一个嵌入的YouTube视频。 在模拟器中一切正常(Nexus 5X API 24)但是当我在我的真实设备(API 17)中测试它时,WebView只显示段落和黑盒子(应该加载youtube视频) 日志显示此错误:
E/Web Console: Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL https://www.youtube.com/embed/blablabla. Domains, protocols and ports must match.
我甚至尝试使用此配置禁用所有安全检查(是的,我知道这不是一件好事):
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setJavaScriptEnabled(true);
但是错误仍然存在,奇怪的是,在模拟器中工作得很好而且我编写了另一个应用程序,它使用相同的代码执行完全相同的操作但没有碎片,并且它可以工作! 什么可能导致此错误?我发现这与SOP有关,但它不应该在任何情况下都有效,但确实如此。