【发布时间】:2020-05-22 13:59:07
【问题描述】:
我在 Flutter-app 中使用 flutter_inappwebview 来显示本地 html(来自资产)。 (我知道:不理想。我更愿意在 Dart 中编写整个程序,但现在这不是一个选项)。它工作得很好..除了一件事。无法让 html 中的视频正常工作。
问题
当我在任何浏览器(直接从资产文件夹)中打开 html 时,视频工作正常。所以html应该没问题。所有其他 html 在应用程序中都可以正常工作。所以文件和 pubspec-import 应该没问题。在应用程序中,页面显示一个视频播放器,但 iOS-sim 和 iOS 设备上都没有内容。在 Android-sim 中它可以工作。
代码
我正在使用:
flutter_inappwebview: ^3.2.0
sdk: ">=2.7.0
在导入之后,我像这样使用 inappview。服务器已经在运行(flutter 报告:flutter: Server running on http://localhost:8080)
InAppWebViewController webViewController;
InAppWebView webView;
class OfflineViewer extends StatefulWidget {
@override
_ViewerState createState() => _ViewerState();
}
class _ViewerState extends State<OfflineViewer> {
@override
Widget build(BuildContext context) {
return InAppWebView(
initialUrl: "http://localhost:8080/assets/source/intro.html",
onWebViewCreated: (InAppWebViewController controller) {
webViewController = controller;
},
);
}
}
加载的 intro.html 中的 video-tag 是:
<video height="600" controls>
<source src="intro.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
我尝试过的事情:
不同的视频格式(webm、ogg)> 没有区别。
将在线视频加载到 html 而不是本地 > 工作。视频加载和播放。
嵌入视频的不同方法(video-tag、iframe、video.js)> 没有区别。
设置 InAppWebViewOptions,如:
cacheEnabled: true,
javaScriptCanOpenWindowsAutomatically: true,
useOnLoadResource: true,
javaScriptEnabled: true,
mediaPlaybackRequiresUserGesture: false,
让这个问题(对我来说)难以解决的原因是,一旦它嵌入到应用程序中,我就无法捕获 html 错误,而独立的 html 不会给出错误。任何关于如何解决甚至解决此问题的想法都非常感谢。
您好,
标记
【问题讨论】: