嗨,大家好,我是 Lacie,您現在收看的是 Swift - 來吧!鐵人三十項 系列的第二五篇
在鐵人賽完結後,為保持持續做筆記的習慣
將會在我的 Medium 繼續撰寫文章,若有興趣者可前往觀看。
今天要來學習的東西,是讓大家又愛又恨的 - 「推播通知」
每天早上起床打開手機,你可能都會看到如上圖這樣爆量的通知
你恨不得將它們通通刪掉再也不顯示,但有的通知卻又很實用(例如:限時下殺特賣)
現在就讓我們來學習這個 -「推播通知」的製作方式吧!
iOS上能使用的推播有兩種,分別為:
由於iOS的遠端推播較為麻煩(需透過蘋果的APNS)
故本篇以本地推播學習為主,遠端推播放在以後學習
本地推播通知使用的觸發條件,主要有三種:
UNTimeIntervalNotificationTrigger
間隔多久,發送一次通知。 例如:六十秒一次、三小時一次
UNCalendarNotificationTrigger
指定時間點,發送一次通知。 例如:每週一早上8:00、每年9月11日中午12:00
UNLocationNotificationTrigger
進入某個範圍或離開某個範圍,發送一次通知。 例如:進入某賣場、離開某賣場
在iOS中,得到「允許」這件事相當重要,沒做這件事,程式鳥都不會鳥你
故我們會先在 AppDelegate.swift 中撰寫以下程式碼:
import UserNotifications 這個框架
在 didFinishLaunchingWithOptions 中撰寫以下程式碼
在第一次開啓App時,便會收到請求(是否要讓這個App傳送給你通知、聲音、Icon標示)
之後我們回到 ViewController.swift 中撰寫以下程式碼:
import UserNotifications 這個框架
先設一個 content 變數來儲存要通知的內容。
titie:通知的主標題。
subtitle:通知的副標題。
body:通知的內文。
badge:收到通知後,AppIcon右上角會出現數字。
sound:通知的聲音,這裡使用系統預設的聲音。
trigger:觸發通知的方式。這裡先以間隔多久來示範:10秒後發送、不重複
request:安排一個通知。identifier:識別碼,自行輸入用以管理通知
UNUserNotificationCenter.current().add:將先前安排好的通知加入。
在 viewDidLoad 中 call createNotification
開啟App後,切換到桌面,十秒內即會收到推播通知
目前這篇介紹的部分,需切換回桌面才能接收到通知。
下一篇將會實作在 App 內亦能收到通知的設定、指定時間點發送、插入圖片等
程式碼參考:GitHub