ios,在其他所有内容之前显示警报,通知用户我们需要 "some"权限

标签 ios swift xcode appdelegate onesignal

我正在开发一个应用程序。我(在 AppDelegate 中)做的第一件事是调用 OneSignal 的 initwithlaunchingoptions(...) 这会自动使我的应用程序显示“应用程序想要发送通知”,请求权限。 在我的应用程序生命周期中,我需要用户的其他权限(例如日历)。 我想(在所有权限之前)显示一个简短的 AlertView,解释我要问的问题以及原因。 但是,如果我无法从 AppDelegate 中移动 OneSignal init,而我的“解释警报”仅发生在主 ViewController 的 viewDidLoad 中,我该如何实现此目的?

谢谢。

维克多

最佳答案

这是一个 UIViewController 的示例,其中包含有关应用程序需要位置数据的信息,当用户按下 UIButton 时,它会请求许可。您可以对所有权限执行相同的操作。

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()
    }
}

关于ios,在其他所有内容之前显示警报,通知用户我们需要 "some"权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42884793/

相关文章:

iphone - 遍历 View : Objective-c 中的特定类

ios - Storyboard连接检查器中的方法名称发生更改

ios - UITextField 在执行字符限制的同时附加/在日期之间

ios - iOS 8 上的自动布局约束

键盘可见时的 Swift iOS ScrollView

ios - 如何在 iOS 11 正式发布前提交适用于 iOS 11 的应用程序?

ios - UITextView 上的清除按钮

ios - 动态更改由自动布局控制的 View 的纵横比

ios - 使用适用于 iOS 和 Swift 的 RestKit 映射属性的空值

ios - 发送命令到PJSIP APP -telnet console iPhone