Getting order id from url.
M committed
Mar 17, 2021 at 16:14 UTC
e787a764c027066822db70c3847663d7caa44ca1
1 file changed
+23
-20
lib/src/screens/web_view/web_view_page.dart
+23
-20
@@ -1,4 +1,3 @@
1
-import 'dart:async';
1
import 'dart:io';
2
import 'package:cake_wallet/generated/i18n.dart';
3
import 'package:cake_wallet/src/screens/base_page.dart';
@@ -27,33 +26,37 @@ class WebViewPageBody extends StatefulWidget {
26
}
27
28
class WebViewPageBodyState extends State<WebViewPageBody> {
30
- WebViewController webViewController;
29
+ String orderId;
30
+ WebViewController _webViewController;
31
+ GlobalKey _webViewkey;
32
33
@override
34
void initState() {
35
super.initState();
36
+ _webViewkey = GlobalKey();
37
+
38
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
39
}
40
41
@override
42
Widget build(BuildContext context) {
43
return WebView(
41
- initialUrl: widget.url,
42
- javascriptMode: JavascriptMode.unrestricted,
43
- onWebViewCreated: (WebViewController controller) {
44
- setState(() => webViewController = controller);
45
- },
46
- javascriptChannels: <JavascriptChannel>{
47
- JavascriptChannel(
48
- name: 'Echo',
49
- onMessageReceived: (JavascriptMessage message) {
50
- webViewController.evaluateJavascript("console.log('test callback');");
51
- },
52
- ),
53
- },
54
- /*onPageFinished: (url) {
55
- webViewController.evaluateJavascript("alert('Test alert');");
56
- },*/
57
- );
44
+ key: _webViewkey,
45
+ initialUrl: widget.url,
46
+ javascriptMode: JavascriptMode.unrestricted,
47
+ onWebViewCreated: (WebViewController controller) =>
48
+ setState(() => _webViewController = controller),
49
+ navigationDelegate: (req) async {
50
+ final currentUrl = await _webViewController?.currentUrl() ?? '';
51
+
52
+ if (currentUrl.contains('processing') ||
53
+ currentUrl.contains('completed')) {
54
+ final urlParts = currentUrl.split('/');
55
+ orderId = urlParts.last;
56
+ print(orderId);
57
+ }
58
+
59
+ return NavigationDecision.navigate;
60
+ });
61
}
59
-}
\ No newline at end of file
62
+}