我有“测试”页面,该页面从HTML加载测试的每个问题的数据。每当我从HTML获得视频作为iFrame时,我都会将其解析为数据URI,然后将其显示在WebView中。我将同一页面用于所有问题。当我单击下一个问题时,我使用以下代码在同一Web视图中显示新视频。
webviewController.loadUrl(newUrl)
这完全可以正常工作,直到同一页面中有两个或更多视频为止。同一页面中有两个或更多视频时。下一页中的视频显示的是以前的视频。
下面是我如何从html渲染视频的代码。
Widget renderVideo(dom.Element iframe) {
String initialUrl =
Uri.dataFromString(iframe, mimeType: 'text/html')
.toString();
if (testBloc.webViewController != null) {
testBloc.webViewController.loadUrl(initialUrl);
}
return Container(
width: 300,
height: 350,
child: WebView(
initialUrl: initialUrl,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController controller) {
testBloc.webViewController = controller;
controller.loadUrl(initialUrl);
},
),
);
}
因此,每次有iframe时,都会在页面中调用此方法。因此,当页面中只有一个视频时,该视频将被调用一次。当页面中有两个或多个视频时,这将被称为两次或多次创建尽可能多的网络视图。每当我在单个页面中遇到两个或更多视频时,接下来的页面Webview将显示与多个视频页面中相同的视频。
例如:
Page 1: It has one video. It will be displayed in the webview.
Page 2: If it has two or more video. It will be displayed in as many webviews.
Page 3: And then the page followed by the multi video page does not display its own video. Instead it
displays the video of the page 2. All the upcoming pages from here also display the video of the page 2.
我找不到发生这种情况的原因以及解决方法。谁能在这里引导我。
很抱歉,如果我没有正确解释它,或者我对其进行了详细阐述。也许阅读示例可以使您清楚地理解问题。
谢谢。