web-dev-qa-db-ja.com

Phonegapはアプリの実行時にGPS /位置情報を有効にします

Jquery-ui-mapsとHTML5ジオロケーションを使用して、ユーザーに場所のリストを表示しています。ユーザーのジオロケーションを活用する必要があります。

だから、ここにユースケースがあります、

  1. ユーザーがGPS /位置情報サービスを有効にしていません。
  2. ユーザーはアプリケーションを開き、 navigator.geolocation を呼び出すビューに移動してユーザーの位置を取得します
  3. アプリはエラーになり、GPS /位置情報サービスを有効にする必要があることをユーザーに通知します
  4. 次に、ユーザーはアプリから移動してGPSを有効にします
  5. ユーザーがアプリに戻って地図を表示しようとすると(地理位置情報を再度呼び出す)、アプリはまだGPSを使用できません。

GPS権限がアプリの読み込み時に初期化され、再評価されないPhonegapの問題に絞り込んだと思います。

私の質問は、アプリケーションの実行中にGPSを有効にできますか、それともPhonegapでGPSを使用するためにアプリをリロードする必要がありますか?

10
mondeeds

Phonegapは、GPSのリアルタイム更新をサポートしています。

直接リンクは次のとおりです。

http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#geolocation.watchPosition

一般的には「ウォッチポジション」と呼ばれ、自分でリフレッシュタイマーを設定できます。

実行時にGPSを有効にすることについて。

navigator.geolocation.watchPosition()を呼び出してみてください。

Config.xmlでも地理位置情報へのアクセスを許可することを忘れないでください、しかし私はあなたがそれを知っていると思います;)

お役に立てば幸いです。

8
Daniel

しばらく苦労した後、同じ問題で私を助けることができるプラグインを見つけました

https://github.com/nishantsharmajecrc/cordova-dialog-gps

  function calldialog() {
 document.addEventListener("deviceready",function() {
 cordova.dialogGPS("Your GPS is Disabled, this app needs to be enable to          works.",//message
            "Use GPS, with wifi or 3G.",//description
            function(buttonIndex){//callback
              switch(buttonIndex) {
                case 0: break;//cancel
                case 1: break;//neutro option
                case 2: break;//user go to configuration
              }},
              "Please Turn on GPS",//title
              ["Cancel","Later","Go"]);//buttons
  });
  }