Ste*_*eve 2 detect webview flutter
我一直在寻找 flutter 中的 webview 插件,它可以检测 url 何时更改,但没有找到匹配项?我试图检测 url 更改的原因是因为我想在更改时将 bool 变量更改为 true,然后更改应用栏的颜色,这可能吗?是否有任何简单/简单的示例可以实现我在找什么?提前感谢您的任何帮助!
您可以使用StreamSubscription.
StreamSubscription<String> _onStateChanged;
final flutterWebviewPlugin = new FlutterWebviewPlugin();
@override
void initState() {
super.initState();
_onStateChanged =
flutterWebviewPlugin.onUrlChanged.listen((String state) async {
if (state.startsWith('your_url')) {
// do whatever you want
}
});
}
Run Code Online (Sandbox Code Playgroud)
对于 flutter webview 我使用下面的代码
body: WebView(
onPageFinished: (url){
if (url.toLowerCase().contains("google.com") && url.toLowerCase().contains("status")) {
if (url.toLowerCase().contains("notok")) {
Fluttertoast.showToast(msg: "not successfull");
} else if (url.toLowerCase().contains("ok")) {
Fluttertoast.showToast(msg: "successful!");
}
}
},
javascriptMode: JavascriptMode.unrestricted,
initialUrl: widget.paymentUrl,
));
Run Code Online (Sandbox Code Playgroud)
您可以使用navigationDelegate执行以下操作:
WebView(
initialUrl: yourInitialUrl,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
navigationDelegate: (NavigationRequest request) {
if(request.url.startsWith(urlSearched)) {
//You can do anything
//Prevent that url works
return NavigationDecision.prevent;
}
//Any other url works
return NavigationDecision.navigate;
},
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1724 次 |
| 最近记录: |