2017-03-19 4 views
0

私はアプリを開発しています。私が(AppDelegateで)行うことは、OneSignalのinitwithlaunchingoptions(...)を呼び出すことです。 これにより、自動的に「Appは通知を送信します」というメッセージが表示され、アクセス権が要求されます。 アプリのライフサイクルでは、(カレンダーのような)ユーザーからの他の権限が必要になります。 私は尋ねるものとその理由を説明する簡単なAlertViewを(すべての権限の前に)表示したいと思います。 しかし、 "説明する警告"がメインViewControllerのviewDidLoadでのみ発生している間、私はAppDelegateからOneSignalのinitを移動できない場合、これをどのように達成できますか?私は、他のものの前にアラートを表示して、ユーザーに「いくつかの」アクセス許可が必要であることを知らせます。

ありがとうございました。

ビクターここ

答えて

0

は、それが許可を要求、ユーザーがUIButtonを押すと、位置データをアプリケーションに関する情報を持っている必要がありますUIViewControllerの一例です。すべての権限に対して同様の操作を行うことができます。

class LocationRequestViewController: UIViewController, CLLocationManagerDelegate { 

    var locationManager = CLLocationManager() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.locationManager.delegate = self 
    } 

    //when user authorised or denied ->push next `UIViewController` 
    func locationManager(_: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 
     if status == .authorizedWhenInUse || status == .denied { 
      let destinationVC = self.storyboard!.instantiateViewController(withIdentifier: "Notifications Request") 
      self.navigationController?.pushViewController(destinationVC, animated: true) 
     } 
    } 

    @IBAction func requestLocation(_: UIButton) { 
     self.locationManager.requestWhenInUseAuthorization() 
    } 
} 
+0

JuicyFruitさん、ありがとうございました。私の問題と私のニーズを説明することができませんでした。 Onesignal(api)の通知に対する許可アラートは、appdelegateで発生します。これが起こる前に何か警告する必要があります。 しかし、appdelegateの「アプリケーションはオプションで起動しました」の前に何か警告が表示されるのですか? –

関連する問題