Flutter导入包/插件

时间:2018-07-03 07:21:15

标签: dart flutter

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

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

2 个答案:

答案 0 :(得分:1)

要获取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";
                    });
                  }
                })
          ],
        ),
      ),
    );
  }
}

答案 1 :(得分:0)

要导入,首先需要将添加到pubspec.yaml文件中。

如果您仍在测试中,则可以正常工作:

package_name: any

将带有标识的行添加到 pubspec dependencies部分。

它将获取最接近最新版本并与您的其他插件配合使用的版本。

生产环境中,您可能会关心版本控制。您可以找到有关semantic versioning (SemVer) here的更多信息。

pubspec.yaml

dependencies:
  location: any