美文网首页布袋的世界之Apple苹果家园
Swift3 判断应用是否开启系统通知Notification

Swift3 判断应用是否开启系统通知Notification

作者: 布袋的世界 | 来源:发表于2017-08-17 15:28 被阅读408次

    代码虽然只有几句 但逻辑却棒棒哒

    1、用户打开APP时首次不开启通知
    2、在ViewController设置一个打开通知的Switch
    3、用户打开switch开关进入设置页 (不是很多用户知道如何开启通知的,所以在这里有必要直接跳转系统设置页)
    0-不开启 直接返回 (返回后进行switch代码设置)
    1- 开启 后返回 (返回后进行switch代码设置)

    感谢船长的代码和思路: www.jianshu.com/p/64f9cd9b5b91
    以下是代码和还有图 可以直接拿去用啦 _

    1.png 2.png
     //打开APP系统设置页 
        let urlObj = URL(string:UIApplicationOpenSettingsURLString)
        @IBOutlet weak var switchNoti: UISwitch!
        
        @IBAction func swtichNotiTap(_ sender: UISwitch) {
            // 前往设置
            UIApplication.shared.open(urlObj! as URL, options: [ : ]) { (result) in
                // 如果判断是否返回成功
                if result {
                    
                    let notiSetting = UIApplication.shared.currentUserNotificationSettings
                    if notiSetting?.types == UIUserNotificationType.init(rawValue: 0) {
                        self.switchNoti.isOn = false
                        self.switchNoti.isEnabled = true 
                    } else {
                        self.switchNoti.isOn = true
                        self.switchNoti.isEnabled = false
                    }
    
                    
                }
            }
        }
    
    
     override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
            //   navigationItem.rightBarButtonItem = UIBarButtonItem(imageName: "mine_settingIcon2", highlightedImage: "mine_settingIcon2_press", target: self, action: #selector(MeVC.settingClick))
            // 设置弹出提示框的底层视图控制器 代码初始化放在这 返回的时候才可改变通知
               initNotifications()
        }
     // 通告 权限
        func initNotifications() {
            
         let notiSetting = UIApplication.shared.currentUserNotificationSettings
            if notiSetting?.types == UIUserNotificationType.init(rawValue: 0) {
                self.switchNoti.isOn = false
            } else {
                self.switchNoti.isOn = true
                self.switchNoti.isEnabled = false
            }
    
        }
    

    相关文章

      网友评论

        本文标题:Swift3 判断应用是否开启系统通知Notification

        本文链接:https://www.haomeiwen.com/subject/tcfnrxtx.html