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 +}