2

位置情報サービスの許可を要求する 2 つ以上の Web ビューを表示するネイティブ iOS アプリケーションがあるとします。

たとえば、特定のクエリのマップ結果を比較するアプリケーションを想像してください。たとえば、ユーザーが住所を送信すると、1 つの Web ビューに Google マップの結果が表示され、別の Web ビューに bing の結果が表示されます。

個別の Web ビューのそれぞれが、中断を伴うアラート ビューを介して位置情報サービスの許可を要求するのを回避する方法はありますか?

アプリの唯一の目的がさまざまな位置情報に基づく資産を比較することである場合、私のアプリケーションは、位置情報サービスを使用するアプリケーションを承認するかどうかを一度ユーザーに尋ねる必要があるように思われます。私の WebView はどのようにしてこの許可を継承できますか、それとも位置情報サービス アーキテクチャでは不可能ですか?

位置情報サービスにアクセスするためのアクセス許可を集約できない場合、個別のプロバイダーごとにアクセス許可を保持する方法はありますか? たとえば、ユーザーはアプリを実行するたびに各マップへのアクセスを承認する必要はありません...その結果、3 つのアラート ビュー (アプリと 2 つの Web ビュー) が作成され、起動するたびにすべて同じことが求められます。

この動作を回避して、Web ビューではなくマップ プロバイダーへのネイティブ API 呼び出しを実装する唯一の方法はありますか?

任意の入力を歓迎します。

4

2 に答える 2

1

はい、できます。これには appDelegate クラスを使用します。ロケーション インタラクション コードが単純な場合は、appDelegate にメソッドを作成して認証ステータスを取得し、didFinishLaunching メソッドから呼び出すだけです。

私は次のような方法でこのようなことをします:

    - (BOOL)setupLocationMgr  
   {
        CLLocationManager *locationMgr = [[CLLocationManager alloc] init];
        locationMgr.purpose = @"Location tracking for XXX app.";
        return [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized;
    }

その後、appDelegate は CLLocationManager オブジェクトを保持し、それを必要とする任意のビューに返すことができます。

于 2012-05-04T18:12:25.503 に答える