WIP: add iosController in fastpass
This commit is contained in:
parent
fd85a0cfdf
commit
ea6c2226cb
|
@ -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,43 +89,35 @@ 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;
|
||||||
}
|
}
|
||||||
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)),
|
||||||
|
|
Loading…
Reference in New Issue