首页 > 解决方案 > flutter_inappwebview 动态 URL 变化

问题描述

我正在使用 flutter_inappwebview 在颤振应用程序中显示我的网站。

在我的应用程序一个抽屉菜单中,当我单击抽屉菜单项更改flutter_inappwebview URL 并在flutter_inappwebview 中加载新URL 时。

抽屉菜单和 flutter_inappwebview 都在不同的页面中。

这可以在颤振中实现吗

这是我的 flutter_inappwebview 代码

class homePage extends StatefulWidget {
  @override
  static const String routeName = '/homePage';
  _homePageState createState() => _homePageState();
}

class _homePageState extends State<homePage> {
  String url = "";
  double progress = 0;
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
    debugShowCheckedModeBanner:false,
    home: Scaffold(
      body: Container(
        child: Column(children: <Widget>[
          Container(
            padding: EdgeInsets.all(2.0),
            child: progress < 1.0
                ? LinearProgressIndicator(value: progress)
                : Container()),
            Expanded(
              child: Container(
              margin: const EdgeInsets.all(0.0),
              child: InAppWebView(
                initialUrl: selectedUrl,
                initialOptions: InAppWebViewGroupOptions(
                  crossPlatform: InAppWebViewOptions(
                    debuggingEnabled: true,
                  )
               ),
               onWebViewCreated: (InAppWebViewController controller) {
                 _webViewController = controller;
               },
               onLoadStart: (InAppWebViewController controller, String url) {
                 setState(() {
                   this.url = url;
                 });
               },
               onLoadStop: (InAppWebViewController controller, String url) async {
                 setState(() {
                   this.url = url;
                 });
               },
               onProgressChanged: (InAppWebViewController controller, int progress) {
                 setState(() {
                   this.progress = progress / 100;
                 });
               },
             ),
           ),
         ),
       ]),
     ),
   ),
 );

} }

标签: flutterflutter-inappwebview

解决方案


您可以通过以下代码监听 URL 变化。

InAppWebView(
        ...
        onUpdateVisitedHistory: (_, Uri uri, __) {
              // uri containts newly loaded url
        },
}

推荐阅读