gpt4 book ai didi

flutter - 获取用户的 Flutter Web 位置

转载 作者:行者123 更新时间:2023-12-03 03:07:55 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

去年关闭。




Improve this question




我目前正在使用 Flutter Geolocator Plugin 来访问用户的位置(纬度/经度),但它似乎还不适用于网络。我试图在 Flutter for web 中找到一些东西来检索用户的位置,但我找不到它。
有没有人已经尝试/找到了做这项工作的东西?

最佳答案

为了能够检索我必须使用的 Web 部件的位置
https://pub.dev/packages/js公开 JavaScript API 并将其与 https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API 结合使用.
所以这里的样子:

  • 首先创建一个文件(例如:locationJs.dart)来暴露JS函数:
     @JS('navigator.geolocation') // navigator.geolocation namespace
    library jslocation; // library name can be whatever you want

    import "package:js/js.dart";

    @JS('getCurrentPosition') // Accessing method getCurrentPosition
    from Geolocation API
    external void getCurrentPosition(Function success(GeolocationPosition pos));

    @JS()
    @anonymous
    class GeolocationCoordinates {
    external double get latitude;
    external double get longitude;
    external double get altitude;
    external double get accuracy;
    external double get altitudeAccuracy;
    external double get heading;
    external double get speed;

    external factory GeolocationCoordinates(
    {double latitude,
    double longitude,
    double altitude,
    double accuracy,
    double altitudeAccuracy,
    double heading,
    double speed});
    }

    @JS()
    @anonymous
    class GeolocationPosition {
    external GeolocationCoordinates get coords;

    external factory GeolocationPosition({GeolocationCoordinates
    coords});
    }
  • 调用新创建的文件
     import 'package:Shared/locationJs.dart';

    success(pos) {
    try {
    print(pos.coords.latitude);
    print(pos.coords.longitude);
    } catch (ex) {
    print("Exception thrown : " + ex.toString());
    }
    }

    _getCurrentLocation() {
    if (kIsWeb) {
    getCurrentPosition(allowInterop((pos) => success(pos)));
    }
    }
  • 关于flutter - 获取用户的 Flutter Web 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60209381/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com