IOS 11上的Cordova插件地理位置超时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 11上的Cordova插件地理位置超时相关的知识,希望对你有一定的参考价值。

我访问了有关此问题的所有链接,没有人帮助过我。

ios上的“cordova-plugin-geolocation”执行方法“getCurrentLocation”时,我总是得到错误代码3(超时)。

按照我的代码:

getCurrentPosition() {
 return new Promise(function (resolve, reject) {
  document.addEventListener("deviceready", function(){
    navigator.geolocation.getCurrentPosition((position) => {
      resolve(position);
    }, (error) => {
      reject(error);
    }, {
      timeout: 10000
    });
  }, false);
 });
}

我升级了所有插件和引擎,错误仍然存​​在。关注我当前的版本:

  • cordova 8.0.0;
  • cordova-ios 4.5.4;
  • cordova-android 7.0.0;
  • cordova-plugin-geolocation 4.0.0。
答案

辛苦工作后,我找到了修复。我在“/platform/ios/{project_name}/{project_name}-Info.plist”中添加了以下键:

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>My app requires constant access to your location, even when the screen is off.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>My app requires constant access to your location, even when the screen is off.</string>

以上是关于IOS 11上的Cordova插件地理位置超时的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 地理定位插件问题

Phonegap (Cordova 2.9.0) iOS 上的地理定位

Cordova iOS 位置信息

iOS 10 上的 Cordova 媒体插件是不是仍可使用后台播放?

ios 上的 Cordova 和 Ionic - 设备插件不起作用

Cordova android地理定位超时