首页 文章

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

提问于
浏览
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);

3 回答

  • 0

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

    The most obvious solution that you must try/verify is that you have enabled location service on your device!

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

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

    • 更新您的Android版本 .

    • 切换到兼容设备 .

    • 等待人行横道支持它 .

    祝你好运 .

  • 0

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

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

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

    更新

    我解决了:

    "xwalk_android_permissions": [ "ACCESS_FINE_LOCATION" ]
    
  • 0

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

    你可以为cordova安装geolocation插件 .

    cordova plugin add cordova-plugin-geolocation
    

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

相关问题