Watch-IP mit Flutter und Dart verwenden
watch_ip_sdk (pub.dev, v0.1.2) umschließt GET /v1/geo für Flutter-Apps und reines Dart, aufgebaut auf package:http statt einem rein auf die Standardbibliothek beschränkten Client, damit es auch auf Flutter Web funktioniert.
Installation
Erfordert Dart 3.0+ / jeden aktuellen stabilen Flutter-Kanal. Hängt von package:http ab — eine bewusste Ausnahme vom abhängigkeitsfreien Ansatz der anderen SDKs, da der HttpClient von dart:io auf Flutter Web nicht verfügbar ist.
Flutter
flutter pub add watch_ip_sdkSchnellstart
Ein Flutter-Web-Build, der in einem echten Browser-Tab läuft, sendet Origin von sich aus korrekt. Ein natives iOS-/Android-/Desktop-Build oder reines Dart auf einem Server tut das nicht — übergeben Sie dort origin explizit. Dieses SDK benötigt ausschließlich den veröffentlichbaren Schlüssel; betten Sie niemals einen geheimen Schlüssel in eine ausgelieferte App ein.
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}');Fehlerbehandlung und Timeouts
Jeder Fehlschlag wirft eine WatchIPError mit einem status und einem stabilen code. Eine Anfrage, die nicht innerhalb von timeout abgeschlossen wird, wirft eine mit dem 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}');
}Was dieses SDK nicht abdeckt
Dieses Paket ruft nur GET /v1/geo auf. Es gibt noch keinen Dart-Client für IP-Abfrage, E-Mail-Validierung oder Risikoprüfungen — rufen Sie sie direkt mit package:http von Ihrem eigenen Backend aus auf, niemals aus der App selbst, da diese Endpoints einen geheimen Schlüssel benötigen. Siehe den Authentifizierungsleitfaden.