Watch-IP

在 Flutter 与 Dart 中使用 Watch-IP

watch_ip_sdk(pub.dev,v0.1.2)为 Flutter 应用与纯 Dart 环境封装了 GET /v1/geo,基于 package:http 而非纯标准库客户端构建,因此也能在 Flutter Web 上运行。

安装

需要 Dart 3.0 及以上版本 / 任意当前稳定版 Flutter 渠道。依赖 package:http——这是相对于其他 SDK 零依赖思路的一个刻意例外,因为 dart:io 的 HttpClient 在 Flutter Web 上不可用。

Flutter

flutter pub add watch_ip_sdk

快速开始

在实际浏览器标签页中运行的 Flutter Web 构建版本,会自行正确发送 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}');

错误处理与超时

每一次失败都会抛出一个带有 status 与稳定 code 的 WatchIPError。如果请求未能在 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。目前还没有针对 IP 查询、邮箱验证或风险检测的 Dart 客户端——请直接使用 package:http,从您自己的后端调用它们,切勿在应用本身中调用,因为这些端点需要私密密钥。参见身份验证指南。

相关页面