tickt booking implementation

flutter_upgrade_with_timesheet_changes
Aamir Muhammad 3 months ago
parent cd36d61640
commit f61817937b

@ -179,7 +179,7 @@ class DashboardApiClient {
// "ClientId": "a9f4d1a0596d4aea8f830992ec4bdac1",
"PersonId": AppState().memberInformationList?.eMPLOYEENUMBER,
"Username": AppState().memberInformationList?.eMPLOYEENUMBER,
"Language": "en",
"Language": "US",
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject(

@ -21,6 +21,7 @@ import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/services_menu_list_screen.dart';
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:mohem_flutter_app/widgets/sso_webview_widget.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
@ -263,32 +264,33 @@ class ServicesWidget extends StatelessWidget {
if (ssoToken != null) {
logger.d(ssoToken.data!.toJson());
logger.d(ssoToken.data!.accessToken);
dynamic url = await pro.fetchURLRedirection(token: ssoToken.data!.accessToken!);
Navigator.push(context, MaterialPageRoute(builder: (context) => SsoLoginWebView(url: url ?? "", jwtToken: ssoToken.data!.accessToken!)));
dynamic valu = await pro.fetchURLRedirection(token: ssoToken.data!.accessToken!);
myInAppBrowser = MyInAppBrowser(
onExitCallback: () {
log("Browser Exited");
},
onLoadStartCallback: (String url) {
log("Browser LoadStart for : $url");
if (url.contains("https://ek.techmaster.in/")) {
// Handle the URL as needed
log("SSO URL Loaded: $url");
}
},
);
await myInAppBrowser!.openUrlRequest(
urlRequest: URLRequest(
url: WebUri(valu, forceToStringRawValue: true),
allowsCellularAccess: true,
allowsConstrainedNetworkAccess: true,
allowsExpensiveNetworkAccess: true,
// headers: {'Authorization': 'Bearer ${ssoToken.data!.accessToken}'},
),
settings: inAppBrowserOptions,
);
//
// myInAppBrowser = MyInAppBrowser(
// onExitCallback: () {
// log("Browser Exited");
// },
// onLoadStartCallback: (String url) {
// log("Browser LoadStart for : $url");
// if (url.contains("https://ek.techmaster.in/")) {
// // Handle the URL as needed
// log("SSO URL Loaded: $url");
// }
// },
// );
//
// await myInAppBrowser!.openUrlRequest(
// urlRequest: URLRequest(
// url: WebUri(valu, forceToStringRawValue: true),
// allowsCellularAccess: true,
// allowsConstrainedNetworkAccess: true,
// allowsExpensiveNetworkAccess: true,
// // headers: {'Authorization': 'Bearer ${ssoToken.data!.accessToken}'},
// ),
// settings: inAppBrowserOptions,
// );
// Navigator.of(context).push(
// MaterialPageRoute(

@ -0,0 +1,61 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
class SsoLoginWebView extends StatefulWidget {
final String url;
final String jwtToken;
SsoLoginWebView({required this.url, required this.jwtToken});
@override
State<SsoLoginWebView> createState() => _SsoLoginWebViewState();
}
class _SsoLoginWebViewState extends State<SsoLoginWebView> {
late final WebViewController _controller;
@override
void initState() {
// TODO: implement initState
super.initState();
_controller =
WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setNavigationDelegate(
NavigationDelegate(
onProgress: (int progress) {
print("WebView is loading (progress: $progress%)");
},
onPageStarted: (String url) {
print("Page started loading: $url");
},
onPageFinished: (String url) {
print("Page finished loading: $url");
},
onHttpError: (HttpResponseError error) {
print("HTTP error: ${error.toString()} for URL: ${error.response!.statusCode}");
},
onWebResourceError: (WebResourceError error) {
print("Web resource error: ${error.description} for URL: ${error.errorType}");
},
),
)
..loadHtmlString('''
<!DOCTYPE html>
<html>
<body onload="document.forms[0].submit()">
<form method="POST" action="https://ek.techmaster.in/SSO/HMG">
<input type="hidden" name="JWTToken" value="${widget.jwtToken}" />
</form>
<h1>Redirecting...</h1>
</body>
</html>''');
}
@override
Widget build(BuildContext context) {
return Scaffold(appBar: AppBar(title: Text('Logging in...')), body: WebViewWidget(controller: _controller));
}
}

@ -133,6 +133,7 @@ dependencies:
#todo its for temporary purpose, later will remove this.
dotted_border: ^2.0.0+3
webview_flutter: ^4.13.0
# saf: ^1.0.3+4

Loading…
Cancel
Save