1

在我将基于 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);
4

3 回答 3

0

人行横道开发团队似乎已经注意到了此功能,并且已经进行了一系列修复,因此现在应该可以在大多数设备上使用。有关详细信息,请参阅此线程

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

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

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

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

祝你好运。

于 2015-03-25T22:56:05.100 回答
0

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

您可以为科尔多瓦安装地理定位插件。

cordova plugin add cordova-plugin-geolocation

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

于 2015-07-17T12:15:24.563 回答
0

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

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

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

更新

我解决了:

  "xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]
于 2016-04-27T16:11:39.150 回答