2016-06-22 12 views
6

ネイティブイオニック2ジオロケーションプラグインを使用していて、期待通りに機能しません。まず、プラグインを追加します。ネイティブイオン2ジオロケーションはアンドロイドデバイスでは機能しません

ionic plugin add cordova-plugin-geolocation 

次に、プラグインをインポートして、現在の位置を取得するための呼び出しを発行します。

import { Geolocation } from 'ionic-native'; 
import { Geoposition, GeolocationOptions } from 'ionic-native/dist/plugins/geolocation'; 

export class MyComponent { 
protected getLocation():Promise<Geoposition> { 
    let options:GeolocationOptions = { 
    maximumAge: 0, timeout: 5000, enableHighAccuracy: false 
    }; 
    return Geolocation.getCurrentPosition(options) 
    .catch(error => { console.error(error.message) }; 
} 
} 

私はAndroidManifest.xmlもチェックしました。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

私はタイムアウトを常に超えていることに気づきました。私がデフォルト(タイムアウトがデフォルトで無限に設定されている)にしておけば、およそ20分後に、私は実際に地理的位置を取得します。もちろん、20分は理想的ではありません。

また、navigatorを次のように使用して試しました。しかし、私はまったく同じ結果を得る。

navigator.geolocation.getCurrentPosition(
position => { 
    console.info('using navigator'); 
    console.info(position.coords.latitude); 
    console.info(position.coords.longitude); 
}, 
error => { 
    console.warn('using navigator'); 
    console.warn(error.code); 
    console.warn(error.message); 
}, 
options 
); 

Chromeでテストすると、コードは期待通りに機能します。唯一の違いは、ページが自分の場所にアクセスできるようにするかどうかを尋ねるポップアップが表示されることです。

I「は、私がところで

イオン2のコンテキストでこの質問をしたかった私は多くの人があまりにもイオンとSO上で同じ問題を抱えて見ましたが、それはバージョン1でありますまた、Cordovaが更新され、バージョンが6.0.2として表示されています。おそらく

npm update -g cordova 

バージョン情報

  • イオン2.0.0-beta.30
  • コルドバ6.0.2
  • ガルプCLI 1.2.1および3.9.1ローカル
+1

同じ問題に直面しました。あなたは解決策を見つけましたか? – likerRr

+0

が見つかりましたか? –

+0

いいえ、解決策が見つかりませんでした。先日私はionic 2を見て、新しいジオロケーションのプラグインがあるので、私はそれを試してみるつもりです。私は後でリンクを投稿し、それが何かを助けるかどうかを試してみる。 –

答えて

0

私は解決策を見つけた。問題は私のGPSモジュールにありました。最終的には、どのサイトでも自分の位置を見つけられなくなりました。私は携帯電話をリロードして、今はすべて動作します。

まず、maps.google.comなどのサイトで自分の場所を特定できるかどうかを確認します。あなたの場所を特定できない場合は、問題があなたの電話にあります。リロードしたり、再リフレッシュしてみてください。

4

使用このコードは:

if (navigator.geolocation) { 
     var options = { 
     enableHighAccuracy: true 
     }; 

     navigator.geolocation.getCurrentPosition(position=> { 
     console.info('using navigator'); 
     console.info(position.coords.latitude); 
     console.info(position.coords.longitude); 
     }, error => { 
     console.log(error); 
     }, options); 
    } 

Geolocationをインポートすることを忘れないでください:

import { Geolocation } from 'ionic-native'; 

とプラグインの追加:

ionic plugin add cordova-plugin-geolocation 
+0

これはエラーなく動作します。ありがとう@Felipe –

+0

これは美しく動作します。新しいバージョンでは、geolocation.getCurrentPosition(options).then((position)=> {//ここでいくつかのロジック})を実行します。 – Kaylined

+0

場所をオフにしてから電源をオンにすると、この機能を実行させる方法を教えてください。 場所がオフの場合、ジオロケーションはエラーを返すので、同じページにいる間に後でオンにすると、ジオロケーションは再び実行されないので、場所の状態でリスナーのように再度実行させることができます。 –

0

これは通常引き起こされホエーをあなただけのイオン性プラグインを追加しましたコードワイヤープラグインを追加するのを忘れてしまった(どうしてそれがionic pluginによってインストールされていないのか分かりません) D):

ionic plugin add cordova-plugin-geolocation 

、その後:コルドバのプラグインをインストール

cordova plugin add cordova-plugin-geolocation 

は、いくつかの状況でエラーを修正することができます。

これは、コーデックプラグインが利用できないため、ionic serveのブラウザでアプリケーションを実行しているときにも発生します。

1

インストールし、両方のコルドバの依存関係

cordova plugin add cordova-plugin-geolocation 
cordova plugin add cordova-plugin-whitelist 

は、この安全でないエラーをスローしますイオンヴァランアンドロイド-lジオロケーションを実行するときに、心に留めておいてくださいAndroidMainfest.xml

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 

にこの権限を追加します。 ウルブラウザ上でテストし、それをか

ionic cordova run adnroid 

で簡単な実行を行うことは、それが他の誰かの役に立てば幸い、私のために問題を解決しました。

+0

これは私のために働いた、ありがとう –

関連する問題