import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; class ChatbotWebViewPage extends StatefulWidget { final String client_branch_id; final String empCodeString; final String empName; final String empPrimaryId; final String client_id; const ChatbotWebViewPage({ Key? key, required this.client_branch_id, required this.empCodeString, required this.empName, required this.empPrimaryId, required this.client_id, }) : super(key: key); @override State createState() => _ChatbotWebViewPageState(); } class _ChatbotWebViewPageState extends State { late final WebViewController _controller; @override void initState() { super.initState(); final url = Uri.parse( 'https://venbait.in/nhance/dev/chatbot' '?employee_id=${widget.empPrimaryId}' '&emp_code=${widget.empCodeString}' '&origin=mob' '&name=${widget.empName}' '&client_id=${widget.client_id}' '&client_branch_id=${widget.client_branch_id}', ); _controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setBackgroundColor(Colors.transparent) ..setNavigationDelegate( NavigationDelegate( onNavigationRequest: (NavigationRequest request) { debugPrint("Clicked URL: ${request.url}"); _launchInExternalBrowser(Uri.parse(request.url)); return NavigationDecision.prevent; // prevent WebView navigation }, onWebResourceError: (error) { debugPrint("WebView error: ${error.description}"); }, ), ) ..loadRequest(url); } /// Launch URL in external browser (Chrome or default) Future _launchInExternalBrowser(Uri url) async { if (await canLaunchUrl(url)) { await launchUrl(url, mode: LaunchMode.externalApplication); } else { debugPrint("Could not launch $url"); } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('Ask ILA')), body: WebViewWidget(controller: _controller), ); } }