iOS8之后 交互性通知

1、在AppDelegate中注冊交互性通知:

func  application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

// application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert, categories: nil))

        //MARK: - 提醒操作 設置

        let notificationActionOk : UIMutableUserNotificationAction = UIMutableUserNotificationAction()

        notificationActionOk.identifier = "completeRemindRater"

        notificationActionOk.title = "再工作一會兒"

        //是否取消提醒

        notificationActionOk.destructive = false

        //是否需要權限,例如鎖屏的時候,執(zhí)行操作是否需要解鎖再執(zhí)行

        notificationActionOk.authenticationRequired = false

        //啟動app還是后臺執(zhí)行

        notificationActionOk.activationMode = UIUserNotificationActivationMode.Background

        let notificationActionRestNow: UIMutableUserNotificationAction = UIMutableUserNotificationAction()

        notificationActionRestNow.identifier = "relaxNow"

        notificationActionRestNow.title = "休息"

        notificationActionRestNow.destructive = false

        notificationActionRestNow.authenticationRequired = false

        notificationActionRestNow.activationMode = UIUserNotificationActivationMode.Background

        //MARK: -Notification Category 設置

        let notificationCompleteCategory: UIMutableUserNotificationCategory = UIMutableUserNotificationCategory()

        //記住這個identifier ,待會用

        notificationCompleteCategory.identifier = "COMPLETE_CATEGORY"

        notificationCompleteCategory.setActions([notificationActionOk,notificationActionRestNow], forContext: .Default)

        notificationCompleteCategory.setActions([notificationActionOk,notificationActionRestNow], forContext: .Minimal)

        

        //請求用戶允許通知

        application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes:[.Sound,.Alert,.Badge], categories: NSSet(array: [notificationCompleteCategory]) as? Set<UIUserNotificationCategory>))

        

        return true

    }

2、在需要發(fā)送通知的地方實現(xiàn)以下代碼

@IBAction func sendNoti(sender: AnyObject) {

        //設置10秒的提醒

//        let completeNotification = setNotification("時間到了,已完成任務",timeToNotification: 10,soundName: "提醒音樂.mp3",category:"")

        let completeNotification = setNotification("時間到了,已完成任務",timeToNotification: 5,soundName: "提醒鈴聲.mp3",category: "COMPLETE_CATEGORY")

        UIApplication.sharedApplication().scheduleLocalNotification(completeNotification)

    }

    func setNotification(body:String,timeToNotification:Double,soundName:String,category:String) -> UILocalNotification {

        let localNotification:UILocalNotification = UILocalNotification()

        localNotification.alertAction = "滑動查看信息"

        localNotification.alertBody = body

        

        //在mainBundle的短于30秒的播放文件,否則就會是系統(tǒng)默認聲音

        localNotification.soundName = soundName

        localNotification.fireDate = NSDate(timeIntervalSinceNow: timeToNotification)

        

        //下面這條category語句是對應下面的“有選項的本地操作”章節(jié)

        localNotification.category = category

        

        return localNotification

    }

3、在AppDelegate中實現(xiàn)點擊交互按鈕的回調(diào),
?completionHandler()回調(diào)必須實現(xiàn),否則會報警告,而且執(zhí)行不了里面的流程

  func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [NSObject : AnyObject], completionHandler: () -> Void) {

        print("按下的選項的identifier是:\(identifier)")

        //必須實現(xiàn)的方法,否則會報一個警告

          completionHandler()

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

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

  • 版權聲明 本文翻譯自:raywenderlich.com 原文作者: Jack Wu 譯者: JMStack 轉載...
    jmstack閱讀 7,709評論 6 30
  • 前言 本文是一篇轉載文章,在這一篇實用的文章里,你可以按照上面的步驟實現(xiàn)不借助第三方和服務器端,自己給自己的設備發(fā)...
    進無盡閱讀 1,832評論 6 6
  • 應用程序必須進行適當配置,才可以接受本地或遠程通知。配置過程在iOS和OS X略有不同,但基本原理是相同的。在啟動...
    shenzhenboy閱讀 1,474評論 1 2
  • 介紹一下iOS10的通知新功能,用戶體驗的提升和開發(fā)者能夠發(fā)揮的地方非常多,使得iOS更具有競爭力。 1.iOS ...
    F麥子閱讀 4,108評論 3 4
  • 昨天晚上難得的做了一個夢,不太好!而且還覺得很真實,結果醒來發(fā)現(xiàn)是個夢中夢。 夢里我躺在床上,和女兒在一起,但那不...
    44e9933106c7閱讀 370評論 0 0

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