搜尋套件、儲存庫與 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 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。