import 'package:f_r_e_hub/app_state.dart'; import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher_string.dart'; import 'package:webview_flutter/webview_flutter.dart'; import '/flutter_flow/flutter_flow_util.dart'; class FastPassPageWidget extends StatefulWidget { final String freToken = FFAppState().userUUID; final String freUserData = "{\"name\": \"${FFAppState()}\", " + "\"email\": \"${FFAppState().email}\"," + "\"dev_id\": \"${FFAppState().devUUID}\"," + "\"created_at\": \"${FFAppState().createdAt}\"," + "\"updated_at\": \"0000-00-00 00:00:00\"," + "\"status\": \"A\" }"; final String clientId = FFAppState().cliUUID; // const FastPassPageWidget({ Key? key,}) : super(key: key); @override _FastPassPageWidgetState createState() => _FastPassPageWidgetState(); } class _FastPassPageWidgetState extends State { late WebViewController _controller; late String url; late String name; late String email; late String userUUID; late String created_at; @override void initState() { super.initState(); name = FFAppState().name; email = FFAppState().email; userUUID = FFAppState().userUUID; created_at = FFAppState().createdAt; // url = 'https://hub.freaccess.com.br/hub/fast-pass/7'; url = 'https://hub.freaccess.com.br/hub/fast-pass/${widget.clientId}'; } @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( body: WebViewWidget( controller: _controller = WebViewController() ..clearCache() ..clearLocalStorage() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setBackgroundColor(const Color(0x00000000)) ..setOnConsoleMessage((message) { debugPrint('Console: ${message.message}'); }) ..setNavigationDelegate( NavigationDelegate( onProgress: (int progress) {}, onPageStarted: (String url) { // log().info('Page started: $url'); final String token = "localStorage.setItem('fre-token', '\"${widget.freToken}\"');"; // log().info(token); _controller.runJavaScript(token); final String data = "localStorage.setItem('fre-user-data', '${widget.freUserData}');"; // log().info(data); _controller.runJavaScript(data); // final String command = 'Object.entries(localStorage).forEach(([ key, value ]) => console.log(key+" => "+value) );'; // _controller.runJavaScript(command); }, onPageFinished: (String url) { // log().info('Page finished: $url'); }, onWebResourceError: (WebResourceError error) { // log().error('${error.description}'); }, onNavigationRequest: (NavigationRequest request) { // log().info('Request: ${request.url}'); if (request.url.startsWith('http') || request.url.startsWith('https://api.whatsapp.com/send') || request.url.startsWith('https://wa.me')) { launchUrlString(request.url); return NavigationDecision.prevent; } return NavigationDecision.prevent; }, ), ) ..loadRequest(Uri.parse(url)), ), ), ); } }