問題タブ [clregion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iOS - デバイス/ユーザーが新しい都市に入ったときの地域監視?
iOS CLLocationManager APIstartmonitoringsignificantlocationchanges
は、500 メートル以上などの大きな変化があったときにアプリに通知します。
しかし、ユーザー/デバイスが新しい都市に入ったときにのみアプリが通知されるように、アプリで必要です。閉じた状態の場合、アプリは自動的に開きます。
注: マップ/ナビゲーション アプリケーションではないため、アプリでユーザーの位置データを監視し続け、最後にデバイスのバッテリーを消耗させたくありません。
いくつかの解決策を提案してください。
ios - iOS ジオフェンス、監視開始時に領域内にいるときの処理方法は?
が呼び出されたときに電話がすでに地域内にあるシナリオを処理する方法を理解できませんでしたstartMonitoringForRegion
か? 他の質問は、 thisrequestStateForRegion
内で呼び出すことを提案してから、 method を呼び出します。したがって、コードは次のようになります。didStartMonitoringForRegion
didDetermineState: forRegion:
明らかに、メソッド geofenceRegion は私自身のものであり、正常に動作し、オブジェクトには lat long や radius などのものが含まれており、すべて正常に動作するため、ここでは問題ありません。
とにかく、上記のコードの問題は、デバイスにリージョンを追加するときに、ユーザーがすでにリージョン内にいる場合に機能することです (つまり、didEnterRegion が実行されます)。ただし、問題はdidDetermineState: forRegion:
、アップルのドキュメントに従って、境界領域の1つが交差するたびにメソッドも呼び出されることです。
ロケーション マネージャーは、リージョンの境界遷移があるたびにこのメソッドを呼び出します。locationManager:didEnterRegion: および locationManager:didExitRegion: メソッドの呼び出しに加えて、このメソッドを呼び出します。ロケーション マネージャーは、非同期で実行される requestStateForRegion: メソッドへの呼び出しに応答して、このメソッドも呼び出します。
これにより、リージョンが入力されるたびにdidEnterRegion
自動的didDetermineState: forRegion:
に呼び出されますが、アップルのドキュメントに従って自動的に呼び出されるdidEnterRegion
ため、再び呼び出されます。これにより、リージョンが2回入力されるだけです一度入った。どうすればこれを回避できますか?
ご協力いただきありがとうございます。
解決
解決策は本当に簡単なので、間違った方法で進めていました。didEnterRegion:
2 つの方法を使用するか、領域に出入りするための独自の方法をdidExitRegion
使用して作成するかを選択する必要がありましたが、両方を使用するべきではありません。didDetermineState: forRegion
したがって、didDetermineState: forRegion
メソッドのみを使用することを選択したため、コードは次のようになります。
このメソッドを使用すると、領域内にない場合は領域に対して exit 領域が呼び出されることに注意してください。私のように、領域に既に入っているかどうかを確認する何らかの方法が必要になります。 (私はすでにこれを使用してリージョンの他の側面を保存していたので、私自身はコアデータを使用しました)。
ios - iOS 8.2 MonitoringForRegion デリゲート メソッドは完全に機能していましたが、呼び出されなくなりました
昨日から、CLLocationManager で動作するリージョンの監視に問題があります
PS: 私のプロジェクトは完全に機能していました。毎日テストしていますが、今日、このデリゲート メソッドは、リージョンに入ってから 1 分後に呼び出されました。
デリゲートメソッドをテストするために CLLocationManager のみを使用して別のプロジェクトを作成しましたが、同じことが起こっています。
これが一体何なのか教えてくれませんか?
[アップデート]
iPhone再起動後のiOS地域監視に関するこの役立つリンクを見つけました
ios - startMonitoringVisits を使用してリージョンを監視する
クラス参照は、それをいつ使用するか、または正確に何をしているのかを説明していません。地域の出口を監視する必要がありますが、startMonitoringForRegion:
100% 信頼できないという事実は問題です。
startMonitoringVisits
ここで私を助けることができますか?そうでない場合 - この問題を解決する方法に関する他のアイデアはありますか? (かなりの距離と監視地域のような?)
ありがとう
ios - Location Manager didEnterRegion および didExitRegion メソッドは呼び出されません
数か月間 iOS 開発を行っており、最近はバス アプリを開発しています。
現在、バスの動きを模倣して、バス停に複数の注釈を設定しています。テスト目的で、バス停を 1 つだけ設定し、バスがいつこの地域に出入りしたかを監視しようとしています。
奇妙なことに、私のdidStartMonitoringForRegion
メソッドは完全に呼び出されますが、メソッドdidEnterRegion
もdidExitRegion
メソッドも呼び出されません。これに伴い、エラーは一切呼び出されません。私がプログラムを実行するたびに、バスは私に促すことなくほとんど停留所を通過します。
なぜこれが起こっているのか、そしてそれを解決する方法を誰かが私に説明してもらえますか?
swift - LocationManager didEnterRegion が呼び出されませんでした (再び)
ユーザーが入力したときに通知される地域を登録しようとしています。これは私が使用するコードです:
didStartMonitoringForRegion が呼び出され、monitoredRegions が正しく出力されるため、登録はうまくいくようです。しかし、didEnterRegion も didDetermineState も monitoringDidFailForRegion も呼び出されません。
ビジネスは何でしょうか?