嘿,我正在创建一个屏幕,显示一个带有bottomappbar的webview。所以你加载webview,当点击bottomappbar中的一个项目时,另一个网站应该加载到同一个webview中...
我想不出如何打开另一个网站以外,我原来解析。我试图更新网址使用setstate,但它只更新appbar标题和webview仍然显示原来的网站
下面是我目前的代码:
class _WebviewContainer extends State<WebviewContainer> {
var url;
final key = UniqueKey();
_WebviewContainer(this.url);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(url),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.home,
size: 40.0,
color: Colors.white,
),
onPressed: () => {
//-> Here I set the new url but the webview always shows the origin website
setState(() {
url = 'https://stackoverflow.com/';
})
},
)
],
),
body: Column(
children: <Widget>[
Expanded(
child: WebView(
key: key,
javascriptMode: JavascriptMode.unrestricted,
initialUrl: url,
),
),
],
),
);
}
}
我从YouTube上的一个教程中获得了代码,创建者还声明如果URL的状态发生变化,WebView将重新加载,但不幸的是,他没有说明如何操作
有人能帮我吗?
1条答案
按热度按时间t5fffqht1#
所以我有一个类似的情况,除了我想在从下拉菜单中选择一个项目时在我的webview中加载一个新的url。
然后在使用onWebViewCreated参数创建webview时设置此控制器
现在已经设置了控制器,可以在setState()中使用它的loadUrl方法来更改显示的Url
我刚刚开始与Flutter,所以可能是一个更好的方式,当然,但这对我的工作