dart - Flutter 导入包/插件

标签 dart flutter

如何在 Flutter (Dart) 中获取用户 IP 或国家? 我找不到。

以及如何导入这个库? import 'package:location/location.dart';

最佳答案

要获取 IP 地址,您可以使用 dart:io 库。请注意,在回答此问题时,Android 似乎不受支持。

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

class GetIPScreen extends StatefulWidget {
  @override
  _GetIPScreenState createState() {
    return new _GetIPScreenState();
  }
}

class _GetIPScreenState extends State<GetIPScreen> {
  String _ipAddress;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new Padding(
              padding: const EdgeInsets.symmetric(vertical: 16.0),
              child: new Text("IP Address: $_ipAddress"),
            ),
            new RaisedButton(
                child: new Text("Get IP"),
                onPressed: () async {
                  debugPrint("pressed button");
                  if (NetworkInterface.listSupported) {
                    List<NetworkInterface> networkInterfaces = await NetworkInterface.list(
                      type: InternetAddressType.IP_V4
                    );
                    networkInterfaces.forEach((i) => debugPrint("name: ${i.name}, address: ${i.addresses}"));
                    setState(() {
                      _ipAddress = networkInterfaces[0].addresses.first.address;
                    });
                  } else {
                    setState(() {
                      _ipAddress = "Not Supported";
                    });
                  }
                })
          ],
        ),
      ),
    );
  }
}

关于dart - Flutter 导入包/插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51148719/

相关文章:

flutter - 将SafeArea添加到SliverAppBar

Flutter 使用受基本身份验证保护的网络图像

webview - 如何在 Flutter 项目中指定 dart Uri 的编码

testing - 如何使 "flutter drive"在 RenderFlex 溢出异常时失败?

firebase - 如何在 Dart 中使用 firebase 推荐系统?

flutter - 卡在堆栈中不可点击

flutter - SliverList/SliverChildBuilderDelegate 提供初始索引或允许负索引

dart - 如何正确构造此Dart异步代码?

flutter - 错误 : The getter X isn't defined for the class

dart - 'StreamSubscription<LocationData >' cannot be assigned to ' StreamSubscription<Map<String, double>>'