iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Mobile Development

自己的 app 自己寫系列 第 22

[Day22] 韓國人是不是特別會拍綜藝

  • 分享至 

  • xImage
  •  

下午看了一點黑白大廚,非常不錯的料理競賽節目。真的超好奇 Netflix 到底怎麼挖來一堆米其林主廚,錄影那天是不是很多首爾餐廳都一起公休啊。

看了好想去米其林餐廳看看世界。


iOS 當中有 Push Notification,會透過 Apple APNs (Apple Push Notification Service)把訊息推到用戶的手機。整個流程大約分成四個步驟:註冊 APNs --> server 把訊息和 token 送給 apple --> APNs 發送通知 --> app 處理通知。

註冊步驟大約如下 (created by ChatGPT):

// 註冊 & 申請權限
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}

上面的 options 是閉包的參數,而 granted, error 則是會 return 的內容,括號內則根據 return 結果繼續動作,其實應該也可以用 async/await 來處理異步函數。

// 傳 Token
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    // 將 token 傳至伺服器
}

而當 server 在特定情況下需要推送訊息給特定 user,例如下面是蘋果官網的範例:

HEADERS
  :method = POST
  :scheme = https
  :path = /3/device/00fc13adff785122b4ad28809a3420982341241421348097878e577c991de8f0
  host = api.sandbox.push.apple.com
  apns-id = eabeae54-14a8-11e5-b60b-1697f925ec7b
  apns-push-type = alert
  apns-expiration = 0
  apns-priority = 10
DATA
  { "aps" : { "alert" : "Hello" } }

對於應用來說,如果想處理通知內容,則需要使用到 userNotificationCenter 這個類別這個類別來做進一步的設定。


上一篇
[Day21] 一片漆黑的筆電螢幕應該換掉嗎
下一篇
[Day23] 明明還沒到冬天台北怎麼開始下雨了
系列文
自己的 app 自己寫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言