我已经创建了一些网站的网址列表,单击应用程序中的相应按钮即可进入(第一个网站的第一个按钮,第二个网站的第二个按钮,依此类推...)。我正在使用“ flutter-webview-plugin”,它具有“ Scaffold”的所有属性以及一个“ url”属性。我无法在“ url”属性中“按索引”访问那些网站(就像我们按索引访问列表中的图像一样)。
我的代码:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Just Another App',
home: Home(),
routes: {
"/webview": (_) => WebviewScaffold(
withJavascript: true,
withLocalStorage: true,
url: ,
appBar: AppBar(
title: Text('Browser'),
),
),
},
theme: ThemeData(primaryColor: Colors.black),
);
}
}
我尚未共享按钮的代码,因为它已经完成,这是尚待解决的唯一问题。非常感谢您的帮助。
声明这样的WebViewController
,
WebViewController controller;
然后在每个按钮上按更改URL,
RaisedButton(onPressed: () {
url = 'https://flutter.dev/docs/get-started/editor';
setState(() {
print(url);
controller.loadUrl(url);
});
}),
RaisedButton(onPressed: () {
url = 'https://flutter.dev/docs/get-started/test-drive';
setState(() {
print(url);
controller.loadUrl(url);
});
}),
现在在webview中声明您的控制器,
Expanded(
child: WebView(
initialUrl: url,
onWebViewCreated: (WebViewController webViewController) {
controller = webViewController;
},
),
),
我创建了一个working example here
Additionally,要在WebView上启用点击事件,您必须通过在代码中添加javascriptMode: JavascriptMode.unrestricted
来在Webview中启用javascript。因为,
默认情况下,WebView中的JavaScript被禁用
例如:
WebView(
initialUrl: 'https://flutter.dev/',
javascriptMode: JavascriptMode.unrestricted,
),