WIP: add iosController in fastpass

This commit is contained in:
J. A. Messias 2024-10-08 14:07:57 -03:00
parent fd85a0cfdf
commit ea6c2226cb
1 changed files with 22 additions and 41 deletions

View File

@ -18,7 +18,8 @@ class FastPassPageWidget extends StatefulWidget {
} }
class _FastPassPageWidgetState extends State<FastPassPageWidget> { class _FastPassPageWidgetState extends State<FastPassPageWidget> {
late WebViewController _controllerAll; late WebViewController _controllerAndroid;
late InAppWebViewController _controllerIOS;
Future<Map<String, String>> initVariables() async { Future<Map<String, String>> initVariables() async {
final email = StorageUtil().email; final email = StorageUtil().email;
@ -67,31 +68,19 @@ class _FastPassPageWidgetState extends State<FastPassPageWidget> {
return Platform.isIOS return Platform.isIOS
? InAppWebView( ? InAppWebView(
initialUrlRequest: URLRequest(url: WebUri(url)), initialUrlRequest: URLRequest(url: WebUri(url)),
initialSettings: InAppWebViewSettings( initialSettings: InAppWebViewSettings(allowsBackForwardNavigationGestures: true, javaScriptEnabled: true,),
allowsBackForwardNavigationGestures: true, onWebViewCreated: (controller) async => _controllerIOS = controller,
javaScriptEnabled: true,
),
onWebViewCreated: (controller) async {
},
onLoadStop: (controller, url) async { onLoadStop: (controller, url) async {
await controller.evaluateJavascript( await controller.evaluateJavascript(source: "window.localStorage.setItem('fre-token', '\"$userUUID\"')");
source: await controller.evaluateJavascript(source: "window.localStorage.setItem('fre-user-data', '$freUserData')");
"window.localStorage.setItem('fre-token', '\"$userUUID\"')"); await controller.evaluateJavascript(source: "window.localStorage.setItem('enableBackButton', 'true')");
await controller.evaluateJavascript(
source:
"window.localStorage.setItem('fre-user-data', '$freUserData')");
await controller.evaluateJavascript(
source:
"window.localStorage.setItem('enableBackButton', 'true')");
}, },
onUpdateVisitedHistory: (controller, uri, isVisited) { onUpdateVisitedHistory: (controller, uri, isVisited) {
if (uri.toString().contains('/hub/home')) { if (uri.toString().contains('/hub/home')) context.pop();
context.pop();
}
}, },
) )
: WebViewWidget( : WebViewWidget(
controller: _controllerAll = WebViewController() controller: _controllerAndroid = WebViewController()
..clearCache() ..clearCache()
..clearLocalStorage() ..clearLocalStorage()
..setJavaScriptMode(JavaScriptMode.unrestricted) ..setJavaScriptMode(JavaScriptMode.unrestricted)
@ -100,33 +89,27 @@ class _FastPassPageWidgetState extends State<FastPassPageWidget> {
NavigationDelegate( NavigationDelegate(
onProgress: (int progress) {}, onProgress: (int progress) {},
onPageStarted: (String url) { onPageStarted: (String url) {
final String token = final String token = "localStorage.setItem('fre-token', '\"$userUUID\"');";
"localStorage.setItem('fre-token', '\"$userUUID\"');"; final String data = "localStorage.setItem('fre-user-data', '$freUserData');";
final String data = const String backNavigation = "localStorage.setItem('enableBackButton', 'true');";
"localStorage.setItem('fre-user-data', '$freUserData');";
const String backNavigation =
"localStorage.setItem('enableBackButton', 'true');";
_controllerAll.runJavaScript(token); _controllerAndroid.runJavaScript(token);
_controllerAll.runJavaScript(data); _controllerAndroid.runJavaScript(data);
_controllerAll.runJavaScript(backNavigation); _controllerAndroid.runJavaScript(backNavigation);
}, },
onPageFinished: (String url) { onPageFinished: (String url) {
bool isDarkMode = SchedulerBinding bool isDarkMode = SchedulerBinding
.instance .instance
.platformDispatcher .platformDispatcher
.platformBrightness == .platformBrightness == Brightness.dark;
Brightness.dark;
if (isDarkMode) { if (isDarkMode) {
_controllerAll.runJavaScript( _controllerAndroid.runJavaScript(WebviewUtil.jsEnableDarkMode);
WebviewUtil.jsEnableDarkMode);
} }
}, },
onNavigationRequest: (NavigationRequest request) { onNavigationRequest: (NavigationRequest request) {
if (request.url.startsWith('http') || if (request.url.startsWith('http') ||
request.url.startsWith( request.url.startsWith('https://api.whatsapp.com/send') ||
'https://api.whatsapp.com/send') ||
request.url.startsWith('https://wa.me')) { request.url.startsWith('https://wa.me')) {
launchUrlString(request.url); launchUrlString(request.url);
return NavigationDecision.prevent; return NavigationDecision.prevent;
@ -134,9 +117,7 @@ class _FastPassPageWidgetState extends State<FastPassPageWidget> {
return NavigationDecision.prevent; return NavigationDecision.prevent;
}, },
onUrlChange: (url) { onUrlChange: (url) {
if (url.url.toString().contains('/hub/home')) { if (url.url.toString().contains('/hub/home')) context.pop();
context.pop();
}
}), }),
) )
..loadRequest(Uri.parse(url)), ..loadRequest(Uri.parse(url)),