Swift3 判斷應(yīng)用是否開(kāi)啟系統(tǒng)通知Notification

代碼雖然只有幾句 但邏輯卻棒棒噠

1、用戶打開(kāi)APP時(shí)首次不開(kāi)啟通知
2、在ViewController設(shè)置一個(gè)打開(kāi)通知的Switch
3、用戶打開(kāi)switch開(kāi)關(guān)進(jìn)入設(shè)置頁(yè) (不是很多用戶知道如何開(kāi)啟通知的,所以在這里有必要直接跳轉(zhuǎn)系統(tǒng)設(shè)置頁(yè))
0-不開(kāi)啟 直接返回 (返回后進(jìn)行switch代碼設(shè)置)
1- 開(kāi)啟 后返回 (返回后進(jìn)行switch代碼設(shè)置)

感謝船長(zhǎng)的代碼和思路: www.itdecent.cn/p/64f9cd9b5b91
以下是代碼和還有圖 可以直接拿去用啦 _

1.png
2.png
 //打開(kāi)APP系統(tǒng)設(shè)置頁(yè) 
    let urlObj = URL(string:UIApplicationOpenSettingsURLString)
    @IBOutlet weak var switchNoti: UISwitch!
    
    @IBAction func swtichNotiTap(_ sender: UISwitch) {
        // 前往設(shè)置
        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))
        // 設(shè)置彈出提示框的底層視圖控制器 代碼初始化放在這 返回的時(shí)候才可改變通知
           initNotifications()
    }
 // 通告 權(quán)限
    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
        }

    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,983評(píng)論 25 709
  • 點(diǎn)擊查看原文 Web SDK 開(kāi)發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,305評(píng)論 0 15
  • 小李是一名快遞員,最近發(fā)生一件奇怪的事。 近一周,一直有個(gè)漂亮但木訥姑娘每天都在小李這寄快遞,而且每次都是只寄一個(gè)...
    即將變成瘦子閱讀 194評(píng)論 0 0
  • 精力不夠,就會(huì)導(dǎo)致腦袋不夠用,效率不夠高,最近越來(lái)越發(fā)現(xiàn)要學(xué)習(xí)的東西太多太多,不論是書(shū)本閱讀知識(shí),還是課外專(zhuān)業(yè)知識(shí)...
    剽悍文霞閱讀 212評(píng)論 0 0
  • 按:找出一篇父親2014年6月7日發(fā)在QQ空間的小文,借今天高考吉日,發(fā)出來(lái)共享。 按理說(shuō),上世紀(jì)60年代的高考在...
    杏花春雨楊柳風(fēng)閱讀 592評(píng)論 0 1

友情鏈接更多精彩內(nèi)容