2017-12-20 27 views
1

私はこの問題に関するすべてのリンクにアクセスしましたが、何も助けてくれませんでした。Cordova Plugin Geolocation Timeout on IOS 11

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。
+0

maximumAge> 0を設定しようとしましたか?アプリを起動した直後にデバイスが新しいポジションを獲得できない環境にいる可能性があるためです。もし私があなただったら、このプラグインに10秒の古いコードが許されていることを伝えるために少なくとも10000(10秒)に設定します。 – Blauharley

+0

はい、私はすでにこのテストを行っています。それでも同じエラーです。 IOSでは、権限ウィンドウは表示されず、場所の権限設定ではアプリについて何も表示されないことに気付きました –

答えて

1

ハードワークの後、修正が見つかりました。 "/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> 
関連する問題