如何在Flutter(Dart)中获取用户IP或仅获取国家/地区? 我找不到。
以及如何导入该库?
import 'package:location/location.dart';
答案 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