搜索插件、代码仓与 APP 分类

插件详情v0.0.1

ip_geolocation_api

一个 Dart 包,用于 Flutter 或 Dart 项目,通过您的 IP 获取地理位置数据

近 30 天下载
10
喜欢数
14
Pub 分数
40

安装插件

flutter pub add ip_geolocation_api

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个适用于 Flutter 和 Dart 项目的 Dart 包,可根据 IP 地址获取地理位置数据。它通过调用地理定位服务的 API,简化了获取国家、城市、纬度、经度和 ISP 等位置信息的过程。设计上易于集成,支持 Web 和移动平台,使开发者能够通过基于位置的功能提升用户体验。该包轻量高效,非常适合无需 GPS 访问的基本地理定位需求。

适合场景

  • 从IP地址获取用户位置
  • 增强区域内容分发
  • 通过基于IP的检查提高安全性
  • 显示本地化天气或语言
  • 用于分析的用户位置跟踪

主要特点

  • 简单的IP地址定位查询
  • 支持网页和移动平台
  • 轻量且易于集成
  • 返回详细的地理位置数据
  • 内置错误处理

适合对象

  • 需要位置洞察的移动应用
  • 具有区域逻辑的Web应用程序
  • 安全工具检测可疑IP
  • 具有本地化需求的应用程序
  • 寻求快速定位但无需GPS的开发者

使用建议

  • 依赖外部API的可用性
  • 准确性取决于IP数据库的质量
  • 高使用量可能需要 API 密钥
  • 不适用于精确的实时跟踪
  • 仅限基于IP的地理定位,不包括设备GPS

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

ip_geolocation_api

A dart package to get your geolocation data from your IP

Example

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:ip_geolocation_api/ip_geolocation_api.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  HomePage({Key key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String text = '';
  GeolocationData geolocationData;

  @override
  void initState() {
    super.initState();
    this.getIp();
  }

  Future<void> getIp() async {
    geolocationData = await GeolocationAPI.getData();
    if (geolocationData != null) {
      setState(() {
        text = geolocationData.ip;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Container(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(text),
              FlatButton(
                  onPressed: () {
                    if (geolocationData != null) {
                      setState(() {
                        text = jsonEncode(geolocationData.toJson());
                      });
                    }
                  },
                  child: Text("toJSON"))
            ],
          ),
        ),
      ),
    );
  }
}

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目

暂无相关数据。