【问题标题】:Cannot get Geolocation with Crosswalk on Ionic Framework (No errors found)无法在 Ionic 框架上使用人行横道获取地理位置(未发现错误)
【发布时间】:2015-02-01 13:04:02
【问题描述】:

在我将基于 Ionic 的应用程序与 Crosswalk 集成之前,获取地理位置信息运行良好。但是当我使用 Crosswalk 时,它加快了我的应用程序的速度并且运行良好,除了地理位置。我无法获得纬度/经度,但我的应用中没有警告错误。

我的代码是一样的。

      var onSuccess = function(position) {
          localStorage.latitude = position.coords.latitude;
          localStorage.longitude = position.coords.longitude;
      };

      function onError(error) {
          alert('code: '    + error.code    + '\n' +
                'message: ' + error.message + '\n');
      }

      navigator.geolocation.getCurrentPosition(onSuccess, onError);

【问题讨论】:

    标签: javascript cordova geolocation ionic-framework crosswalk-runtime


    【解决方案1】:

    crosswalk 开发团队似乎已注意到此功能,并进行了一系列修复,因此现在应该可以在大多数设备上使用。详情请见this thread

    您必须尝试/验证的最明显解决方案是您已在设备上启用定位服务!

    设置 -> 位置 -> 启用位置(GPS/WIFI)

    这对我来说绝对是这种情况,但是,如果您发现自己使用的是不受支持的设备(请参阅上面的帖子),那么您将有多种选择...

    1. 更新您的安卓版本。
    2. 切换到兼容设备。
    3. 等待人行横道支持它。

    祝你好运。

    【讨论】:

      【解决方案2】:

      我也注意到了。由于某种原因,基于浏览器的 navigator.geolocation 对象无法在带有人行横道容器的科尔多瓦上工作。

      您可以为 cordova 安装地理定位插件。

      cordova plugin add cordova-plugin-geolocation
      

      这解决了我的问题,不需要重写代码,因为它替换了同一个导航器对象。

      【讨论】:

        【解决方案3】:

        使用地理定位需要用户许可,因此您需要在人行横道上指定它manifest.json,方法是添加如下内容:

        "xwalk_permissions": [
          "Contacts",
          "Geolocation",
          "Messaging",
          "Vibration"
         ]
        

        (阅读https://crosswalk-project.org/documentation/manifest/permissions.html)。

        更新

        我解决了:

          "xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-14
          • 2018-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-21
          • 2018-03-23
          • 1970-01-01
          相关资源
          最近更新 更多