During the development of our IoT Plant Monitor application, I wanted to show a webpage inside the Flutter application that’s how I find about the FLutter WebView plugin. But I wanted to limit the URL accessibility to only the sub-pages of diyusthad.com and open external links in the default browser of the user device so I googled and find some solution and I’m sharing it here for all those who are facing the same issue.
WebView(
initialUrl: 'https://diyusthad.com/iotplantmonitor',
navigationDelegate: (navigation) {
if (!(navigation.url.startsWith('https://diyusthad.com/'))) {
final Uri url = Uri.parse(navigation.url);
debugPrint(navigation.url);
_launchUrl(url);
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
),
);
}
Future _launchUrl(url) async {
if (!await launchUrl(url,mode: LaunchMode.externalApplication)) {
throw 'Could not launch $url';
}
}
}
Disable Zoom
I also wanted to disable the zoom option to achieve that we can set zoomEnabled to false
WebView(
zoomEnabled: false,
......
),
Packages Used
These are the packages and their version used while writing this article.

