在Ionic Framework上无法通过Crosswalk获取Geolocation(未发现错误)

时间:2015-02-01 13:04:02

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

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

3 个答案:

答案 0 :(得分:0)

此功能似乎已被人行横道开发团队注意到并且已经进行了一些修复,因此现在应该在大多数设备上工作。有关详细信息,请参阅this thread

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

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

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

  1. 更新您的Android版本。
  2. 切换到兼容设备。
  3. 等待人行横道支持它。
  4. 祝你好运。

答案 1 :(得分:0)

我注意到了同样的事情。出于某种原因,基于浏览器的 navigator.geolocation 对象无法在cordova中使用人行横道容器。

您可以为cordova安装geolocation插件。

cordova plugin add cordova-plugin-geolocation

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

答案 2 :(得分:0)

使用地理定位需要用户权限,因此您需要在人行横道manifest.json上添加以下内容:

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

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

更新

我解决了:

  "xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]