首页 > 解决方案 > 如何检测用户何时在flutter inappwebview中导航到新屏幕

问题描述

美好的一天,我刚开始使用这个包 flutter_inappwebview 在我的颤振应用程序中显示谷歌表单,我希望能够在用户成功提交对谷歌表单的响应时在我的颤振应用程序中检测到。那是当用户从: 移动到这个:时。我尝试使用 onLoadStart 但没有帮助。您的帮助将不胜感激。

在此处输入图像描述



在此处输入图像描述

标签: flutterdart

解决方案


你可以用这个插件做到这一点

它有一个回调来检测 webview 的当前 URL。请按照您项目中的以下代码片段:

Builder(builder: (BuildContext context) {
        return WebView(
          initialUrl: 'https://flutter.dev',
          javascriptMode: JavascriptMode.unrestricted,
          onWebViewCreated: (WebViewController webViewController) {
            _controller.complete(webViewController);
          },
          // TODO(iskakaushik): Remove this when collection literals makes it to stable.
          // ignore: prefer_collection_literals
          javascriptChannels: <JavascriptChannel>[
            _toasterJavascriptChannel(context),
          ].toSet(),
          navigationDelegate: (NavigationRequest request) {
            //here request will provide you various information about the current page with the URL you want to know about
            if (request.url.startsWith('https://www.youtube.com/')) {
              print('blocking navigation to $request}');
              return NavigationDecision.prevent;
            }
            print('allowing navigation to $request');
            return NavigationDecision.navigate;
          },
          onPageStarted: (String url) {
            print('Page started loading: $url');
          },
          onPageFinished: (String url) {
            print('Page finished loading: $url');
          },
          gestureNavigationEnabled: true,
        );
      }),
      floatingActionButton: favoriteButton(),
    );

推荐阅读