iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

前文

昨天設定完前置作業 今天要教大家做個簡易通知哦

透過Switch來處理通知

通知我們會由switch來處理 所以大家先到XIB拉一個Switch
然後新增IBOutlet 和 IBAction 到ViewController上
https://ithelp.ithome.com.tw/upload/images/20230826/20161845guUpV1RXYn.png
那這邊我預設一開始Switch的狀態是關閉的 所以我們再畫面載入時設定
https://ithelp.ithome.com.tw/upload/images/20230826/20161845S2RShankq0.png
然後再我們剛剛的IBAction裡寫上這些
記得ViewController 也要先引入 UserNotifications

如果Switch開啟就執行通知的function (這邊等等會寫
沒有的話就關閉通知

https://ithelp.ithome.com.tw/upload/images/20230826/20161845jwkNO9UZQE.png
接下來開始寫剛剛的function

先dateComponents的實例 他可以讓我們去儲存時、分、秒等時間資訊
因為我是12小時制所以需要先判斷是上午和現在的hour是不是等於12
如果不是的話就讓hour加上12 因為跳通知的話他是24小時制的
最後存到實例裡

https://ithelp.ithome.com.tw/upload/images/20230826/201618450W7TxGvCZt.png

創建一個 UNMutableNotificationContent 實例
用於設置通知的各個屬性 像是標題、內容和聲音等
那這邊的title就是標題 body就是內容 sound就是聲音

這邊大家可以自己另外設定哦
https://ithelp.ithome.com.tw/upload/images/20230826/201618452BcSMrFARa.png

使用 UNCalendarNotificationTrigger 配置通知觸發器
將通知安排在指定的日期和時間並且設定不重複。
使用 UNNotificationRequest 創建通知請求,
其中包含了通知的內容和觸發器。
最後將通知請求添加到通知中心 以便安排通知的顯示 
再途中如果發現錯誤的話就print出無法建立鬧鐘的通知

https://ithelp.ithome.com.tw/upload/images/20230826/20161845c1s5pcK7ck.png
這樣到達指定時間時就會跳出通知來囉
https://ithelp.ithome.com.tw/upload/images/20230826/20161845VeMSEeUU3s.png

結尾

今天教各位通知怎麼運用拉 想必各位應該都知道LINE和鬧鐘給的概念了吧/images/emoticon/emoticon12.gif
那明天會教大家API的基本概念哦


上一篇
Day22 UserNotifications前置設定
下一篇
Day24 Protocol傳值和Extension接值
系列文
Xiang教你入門Swift從零到有30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言