Utiliser Watch-IP avec Flutter et Dart
watch_ip_sdk (pub.dev, v0.1.2) encapsule GET /v1/geo pour les applications Flutter et le Dart pur, construit sur package:http plutôt qu'un client limité à la bibliothèque standard, afin de fonctionner aussi sur Flutter web.
Installation
Nécessite Dart 3.0+ / tout canal Flutter stable actuel. Dépend de package:http — une exception délibérée à l'approche sans dépendance des autres SDK, car HttpClient de dart:io n'est pas disponible sur Flutter web.
Flutter
flutter pub add watch_ip_sdkDémarrage rapide
Une compilation Flutter web s'exécutant dans un véritable onglet de navigateur envoie Origin correctement d'elle-même. Une compilation native iOS/Android/bureau, ou du Dart pur sur un serveur, ne le fait pas — passez origin explicitement dans ce cas. Ce SDK n'a besoin que de la clé publiable ; n'intégrez jamais une clé secrète dans une application distribuée.
Dart
import 'package:watch_ip_sdk/watch_ip_sdk.dart';
final client = WatchIP('wip_pub_xxxxxxxx');
final geo = await client.getGeo();
print('${geo.country} ${geo.city} ${geo.timezone}');Gestion des erreurs et délais d'expiration
Chaque échec lève une WatchIPError avec un status et un code stable. Une requête qui n'aboutit pas dans le délai timeout en lève une avec le code network_error.
Dart
try {
final geo = await client.getGeo(timeout: const Duration(seconds: 5));
} on WatchIPError catch (e) {
print('${e.code} ${e.status} ${e.message}');
}Ce que ce SDK ne couvre pas
Ce paquet n'appelle que GET /v1/geo. Il n'existe pas encore de client Dart pour la recherche d'IP, la validation d'e-mail ou les vérifications de risque — appelez-les directement avec package:http depuis votre propre backend, jamais depuis l'application elle-même, car ces points de terminaison nécessitent une clé secrète. Voir le guide d'authentification.