AppWebViewNotifier constructor
AppWebViewNotifier({
- String? initialUrl,
Implementation
AppWebViewNotifier({String? initialUrl}) : super(const AppWebViewState()) {
debugUtil.mark(hashCode.toString());
webViewController = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..addJavaScriptChannel("Toaster", onMessageReceived: (JavaScriptMessage message) {
// ScaffoldMessenger.of(context).showSnackBar(
// SnackBar(content: Text(message.message)),
// );
})
..addJavaScriptChannel("Token", onMessageReceived: (JavaScriptMessage message) {
// ScaffoldMessenger.of(context).showSnackBar(
// SnackBar(content: Text(message.message)),
// );
// debugUtil.log('WebView get token ${message.message}');
// Navigator.pop(context);
})
..setBackgroundColor(const Color(0x00000000))
..setNavigationDelegate(
NavigationDelegate(
onProgress: (int progress) {
debugUtil.log('WebView is loading (progress : $progress%)');
setProgress(progress);
},
onPageStarted: (String url) async {
debugUtil.log('Page started loading: $url');
setPageStarted(url);
afterPageStartedOrFinished(
currentUrl: await webViewController.currentUrl(),
canGoBack: await webViewController.canGoBack(),
canGoForward: await webViewController.canGoForward(),
);
},
onPageFinished: (String url) async {
debugUtil.log('Page finished loading: $url');
setPageFinished(url);
afterPageStartedOrFinished(
currentUrl: await webViewController.currentUrl(),
canGoBack: await webViewController.canGoBack(),
canGoForward: await webViewController.canGoForward(),
);
},
onWebResourceError: (WebResourceError error) {},
onNavigationRequest: (NavigationRequest request) {
debugUtil.log('WebView attend to load $request');
if (request.url.startsWith('emmacanhelp-auth0-redirect')) {
debugUtil.log('blocking navigation to $request}');
return NavigationDecision.prevent;
}
if (request.url.startsWith('https://www.youtube.com/')) {
debugUtil.log('blocking navigation to $request}');
return NavigationDecision.prevent;
}
debugUtil.log('allowing navigation to $request');
return NavigationDecision.navigate;
},
),
);
if (initialUrl != null) {
loadUrl(initialUrl);
}
}