Swift でプッシュ通知のユーザー設定を確認する 質問する

Swift でプッシュ通知のユーザー設定を確認する 質問する

私のアプリにはプッシュ通知があります。アプリが起動されるたびに、ユーザーがアプリケーションのプッシュ通知を有効にしているかどうかを確認したいと思います。

私はこのようにします:

let notificationType = UIApplication.sharedApplication().currentUserNotificationSettings()!.types
if notificationType == UIUserNotificationType.None {
    print("OFF")
} else {
    print("ON")
}

ユーザーがプッシュ通知を無効にしている場合、アプリからこれを有効にする方法はありますか?

または、ユーザーをプッシュ通知設定 (設定 - 通知 - AppName) に送信する代替手段はありますか?

ベストアンサー1

アプリから設定を変更する方法はありません。ただし、このコードを使用して、ユーザーをアプリケーション固有のシステム設定に誘導することができます。

extension UIApplication {
    class func openAppSettings() {
        UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)
    }
}

Swift 3.0 に更新

extension UIApplication {
    class func openAppSettings() {
        UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
    }
}

iOS 10+ および Swift 5+ 向けに更新されました

extension UIApplication {
    @objc class func openAppSettings() {
        shared.open(URL(string: openSettingsURLString)!,
                    options: [:],
                    completionHandler: nil)
    }
}

おすすめ記事