2017-02-09 4 views
0

私は新しいですが、次の質問があります。ユーザーが拒否した後、場所の許可を求めます。 Swift 3. IOS

アプリが起動すると、ユーザーは場所の許可を受け入れる必要があります。これは正常に動作します。彼が許可しない場合、いくつかの機能は動作しません。

ただし、ユーザーがこれらの機能を使用しようとすると、彼は場所の許可を受け入れていないという警告を受け取ります。これも私もしました。しかし、私は警報が彼が今それを受け入れることができるボタンを持っている(彼はそれを行うために彼の電話で設定に行く必要はありませんので)これを行うことはできませんでした。

このようなアラートのハンドラを作成しましたが、許可を受け入れることができません。 ここにハンドラがあります...

func someHandler(alert: UIAlertAction!) { 
    print("User now wants to let location from new") 

    self.locationManager.requestWhenInUseAuthorization() 

    if CLLocationManager.locationServicesEnabled() { 
     locationManager.delegate = self 
     locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
     locationManager.startUpdatingLocation() 
    } 

} 

これは間違っていますか?現在、ハンドラが呼び出されると、位置情報サービスはオンになりません。

ありがとうございました

+0

なぜ両方の認証をリクエストしていますか?必要なものだけを求めてください。 – rmaddy

+0

なぜあなたは両方の場所のアクセス許可を要求していますか?すなわち_常に_ _ _ _ _ _ _ _ _ _そして_ _ _そのうちの1つだけをリクエストする必要があります。 _WhenInUse_:アプリケーションがフォアグラウンドになるたびに位置を取得し、常に_フォアグラウンドとバックグラウンドの両方に対応します。 – eshirima

+0

それを修正し、私の質問を編集しました。 – RJB

答えて

3

あなたが望むことはできません。ユーザーのみが設定アプリに移動して設定を変更できます。

プログラムで権限を変更することができれば、セキュリティ上の悪夢となります。また、iOSに許可アラートを2回目に表示させるAPIはありません。

+0

ありがとう、よく知っています。しかし、ボタンを設定アプリのページに直接移動させることはできますか? – RJB

+0

はい、多くの例があります。 'UIApplicationOpenSettingsURLString'で検索してください。 – rmaddy

関連する問題