isValidExternalDomain static method
Implementation
static bool isValidExternalDomain(String url) {
AppConfig.logger.d('Validating URL: $url');
// 1. Normalización: Si el usuario escribió "youtube.com", le agregamos "https://"
// Esto es vital para que Uri.parse funcione correctamente.
if (!url.startsWith('http://') && !url.startsWith('https://')) {
url = 'https://$url';
}
// 2. Validación Nativa (Más confiable que Regex para URLs modernas)
// Uri.tryParse maneja mejor rutas complejas como /@usuario o query params (?v=xyz)
final uri = Uri.tryParse(url);
// Verificamos que tenga esquema (http/s) y un host (dominio) válido con al menos un punto
bool isValid = uri != null &&
uri.hasScheme &&
uri.host.isNotEmpty &&
(uri.host.contains('.') || uri.host == 'localhost') &&
!uri.host.endsWith('.');
AppConfig.logger.d('URL is valid: $isValid');
return isValid;
}