flutter - 如何检测用户何时在flutter inappwebview中导航到新屏幕
问题描述
美好的一天,我刚开始使用这个包 flutter_inappwebview 在我的颤振应用程序中显示谷歌表单,我希望能够在用户成功提交对谷歌表单的响应时在我的颤振应用程序中检测到。那是当用户从: 移动到这个:时。我尝试使用 onLoadStart 但没有帮助。您的帮助将不胜感激。
解决方案
你可以用这个插件做到这一点
它有一个回调来检测 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(),
);
推荐阅读
- mysql - mysql查询回调返回值到变量
- graphviz - 在 Graphviz 中写在边缘箭头上的边缘标签
- javascript - 删除键和退格键事件在 IE 中不起作用
- sql - 计数记录并按小时分组
- javascript - jQuery If else 以错误的顺序应用错误的类
- vb.net - 从数组中选择随机元素并显示在文本框中
- java - Gradle Build-Android Gradle 3.2 中的数据绑定错误
- swift - Swift 4 非穷举开关编译
- git - 检查给定本地存储库离线 git 是否存在任何远程上游
- python - Pygame 绘图未显示在 Pygame 窗口中