× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
位置情報を使用する既存のアプリへの対処内容
カメラロール、カメラ等でも必要となります。
いままでは「"(アプリ名)"は現在の位置情報を利用します。よろしいですか?」というアラートが自動で表示されていた。 表示されるタイミングはユーザーが「許可しない」「OK」どちらも設定していない状態。 つまり設定値がNULLの状態のときのみ表示されていました。 iOS8からこのアラートの表示に関してソースコード上に書く必要があります。 特にこの機能が必要なければ書く必要はありません。(そんなケース稀でしょうが) またこの設定値がNULLである状況は ・初めてアプリをインストールした時 ・アプリをアンインストールした時 になります。 つまり ・アプリの更新の際はNULLではなく以前のバージョンの設定値を引き継ぐ ・OSバージョンアップの際は以前のバージョンの設定値を引き継ぐ ということです。 なのでiOS8の端末でアプリがない状態でインストールした際にユーザーが「なんでアプリ動かないんだろう?」と困惑しないように実装する必要があります。 CLLocationManager *locationManager = [CLLocationManager new]; [locationManager requestAlwaysAuthorization]; これでアラートが表示されます。ただし、あくまでもNULLのときだけなので毎回聞く様名ことにはなりません。常時許可の設定になります。 2.について これはOSバグに繋がります。 info.plistにNSLocationAlwaysUsageDescriptionもしくはNSLocationWhenInUseUsageDescriptionの項目を追加しないと、位置情報サービスの許可設定が端末に保持されず、毎回設定が必要になります。 対応する必要のある設定値の記述のみで大丈夫です。 元々この設定値は1.のアラートの下にカスタムメッセージを設定する際のメッセージ文言を設定するものでした。そのため必要なければ空でも大丈夫です。あくまでも項目として追加する必要があります。 3.について 許可の種類が常時許可とフォアグラウンド時のみの許可のとなりました。 iOS7までの位置情報サービスの「許可」にあたる設定は常時になります。 以上iOS8に対応したいアプリが位置情報を使っている場合に最低限対応する必要のあるまとめです。 PR |
|
忍者ブログ [PR] |