所以我只是在颤抖地实现了此WebView,这很棒,但是当我使用webview嵌入youtube视频时出现了一个问题,即使我关闭了Webview页面,该视频仍在播放。如何关闭它?
我使用的插件是 flutter_webview_plugin
final flutterWebviewPlugin =FlutterWebviewPlugin();
@override
void initState() {
super.initState();
flutterWebviewPlugin.close();
}
@override
void dispose() {
super.dispose();
flutterWebviewPlugin.dispose();
}
这是小部件:
IconButton(
icon: Icon(Icons.more_vert),
onPressed: () {
print('Hello there!'); flutterWebviewPlugin.launch('https://www.youtube.com/embed/m5rm8ac4Gsc');
},
)
答案 0 :(得分:0)
您可以做的是创建一条路线,然后在其中的Webview示例:/youtubeWebview
并使用Navigator.popAndPushNamed(context, '/yourRoute');
返回,而不是Navigator.pop(context);
答案 1 :(得分:0)
我终于得到了答案,但是我将软件包更改为webview_flutter
而不是flutter_webview_plugin
。
要停止youtube或任何其他有音频的网站的音频,我们需要更改当前Web视图的url
。也许它也可以与flutter_webview_plugin
一起使用。
/* define webview controller */
WebViewController _controller;
/* before we leave current route, make sure to change the url to something */
Future<bool> _willPopCallback(WebViewController controller) async {
controller.loadUrl('https://www.google.com/'); /* or you can use controller.reload() to just reload the page */
return true;
}
return WillPopScope(
onWillPop: () => _willPopCallback(_controller), /* call the function here */
child: Scaffold(
appBar: AppBar(
title: Text('Just appbar'),
),
body: Column(
children: <Widget>[
Expanded(
child: WebView(
key: UniqueKey(),
javascriptMode: JavascriptMode.unrestricted,
initialUrl: widget.videoUrl,
onWebViewCreated: (WebViewController webViewController) { /* i am not sure what this line actually do */
_controller = webViewController;
},
),
),
Text(
'Please pause the video before you go back',
style: TextStyle(
color: Colors.black,
),
)
],
),
),
);