Watch-IP

استخدام Watch-IP مع Flutter وDart

تُغلِّف watch_ip_sdk (على pub.dev، الإصدار v0.1.2) استدعاء GET /v1/geo لتطبيقات Flutter ولغة Dart وحدها، وهي مبنية على package:http بدلًا من عميل يعتمد على المكتبة القياسية فقط، لتعمل أيضًا على Flutter للويب.

التثبيت

يتطلب Dart 3.0 أو أحدث / أي قناة Flutter مستقرة حالية. يعتمد على package:http — وهذا استثناء مقصود من نهج حزم SDK الأخرى الخالي من التبعيات، لأن HttpClient الخاص بـ dart:io غير متاح على Flutter للويب.

Flutter

flutter pub add watch_ip_sdk

البدء السريع

يُرسل إصدار Flutter للويب العامل في تبويب متصفح فعلي ترويسة Origin بشكل صحيح تلقائيًا. أما الإصدار الأصلي لـ iOS/Android/سطح المكتب، أو لغة Dart وحدها على خادم، فلا يفعل ذلك — مرِّر origin صراحةً في تلك الحالة. لا تحتاج هذه الحزمة (SDK) أبدًا سوى المفتاح القابل للنشر؛ لا تُضمِّن أبدًا مفتاحًا سريًا في تطبيق يتم شحنه للمستخدمين.

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}');

معالجة الأخطاء والمُهل الزمنية

كل فشل يُطلِق WatchIPError يحمل status ورمزًا ثابتًا. الطلب الذي لا يكتمل خلال timeout يُطلِق خطأً برمز 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}');
}

ما لا تُغطيه هذه الحزمة (SDK)

لا تستدعي هذه الحزمة سوى GET /v1/geo. لا يوجد بعد عميل Dart للبحث عن عنوان IP، أو التحقق من البريد الإلكتروني، أو فحوصات المخاطر — استدعِها باستخدام package:http مباشرة من الخلفية (Backend) الخاصة بك، لا من التطبيق نفسه أبدًا، لأن تلك النقاط تحتاج إلى مفتاح سري. راجع دليل المصادقة.

صفحات ذات صلة