无法在 Ionic Framework 上使用人行横道获取地理位置(未发现错误)

Cannot get Geolocation with Crosswalk on Ionic Framework (No errors found)

本文关键字:地理位置 获取 未发现 错误 Ionic Framework 使用人      更新时间:2023-09-26

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

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

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

设置 ->位置

->启用位置 (GPS/WIFI)

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

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

祝你好运。

我也注意到了同样的情况。 由于某种原因,基于浏览器的 navigator.geolocation 对象在 Cordova与人行横道容器不起作用。

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

cordova plugin add cordova-plugin-geolocation

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

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

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

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

更新

我解决了:

  "xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]