【问题标题】:How to get current country of device without asking for location permission? Flutter如何在不请求位置许可的情况下获取设备的当前国家/地区?扑
【发布时间】:2020-12-25 07:49:50
【问题描述】:

我只想知道设备所在的国家/地区。不是街道,不是城市,不是省。只是国家。我应该能够获得那种粗略的信息,而无需向用户询问位置权限,我看到许多应用程序和网站以某种方式知道我目前在哪个国家/地区,而无需事先询问我任何事情。

有什么方法可以在 Android 和 iOS 上同时使用 Flutter 吗?

(可选但高度赞赏)如果绝对需要 API 来执行此操作。哪个最便宜?

【问题讨论】:

    标签: flutter geolocation ip-geolocation


    【解决方案1】:

    试试这个:

    将'package:http/http.dart'导入为http;

    try {
          http.get('http://ip-api.com/json').then((value) {
          print(json.decode(value.body)['country'].toString());
          });
        } catch (err) {
          //handleError 
       }
    

    【讨论】:

    • Worth.. : ) 但这些服务是为批量使用付费的。
    【解决方案2】:

    您可以使用 IP 地理定位服务,例如Ipregistry

    import 'package:http/http.dart' as http;
    
    Future<String> lookupUserCountry() async {
      final response = await http.get('https://api.ipregistry.co?key=tryout');
    
      if (response.statusCode == 200) {
        return json.decode(response.body)['location']['country']['name'];
      } else {
        throw Exception('Failed to get user country from IP address');
      }
    }
    

    请注意,在 Android 上,它需要 android.permission.INTERNET 权限。

    【讨论】:

      猜你喜欢
      • 2012-01-06
      • 1970-01-01
      • 2020-05-26
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多