加载Youtube视频时,我在Flutter Webview上出现错误(webview_flutter:^ 0.1.2),(尽管我最初认为这与内容安全性问题有关,)这似乎是HTTPS来源安全的问题。在浏览器上,通常可以通过移至HTTPS域,在移动设备上寻找解决方法来缓解此问题
Container(
child: WebView(
initialUrl: Uri.dataFromString(
'<html>'
'<meta http-equiv="Content-Security-Policy" content="default-src * gap:; script-src * \'unsafe-inline\' \'unsafe-eval\'; connect-src *; img-src * data: blob: android-webview-video-poster:; style-src * \'unsafe-inline\';">'
// '<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">'
'<body><iframe src="https://www.youtube.com/embed/vlkNcHDFnGA"></iframe></body>'
'</html>', mimeType: 'text/html').toString(),
javascriptMode: JavascriptMode.unrestricted, )),
我在控制台中看到以下内容:https://www.youtube.com/embed/vlkNcHDFnGA%22%3E%3C/iframe%3E%3C/body%3E%3C/html%3E(1)
设备定向事件在不安全的来源上已被弃用,并且支持将在将来删除。你应该考虑切换您的应用程序使用安全来源,例如HTTPS。看到https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins有关更多详细信息。
您可以尝试使用我的插件flutter_inappwebview,它是Flutter插件,允许您添加内联WebView或打开应用程序内浏览器窗口,并且具有许多事件,方法和选项来控制WebView。
要在WebView中加载<iframe>
,您可以使用initialData
小部件的InAppWebView
参数直接加载HTML源,也可以使用[从资产文件夹(请参见更多here)加载HTML文件。 C0]参数。