Class Note – Notifications

Presenter : Smart Wang

  • Local
    • iOS 10 以前的作法
      • 要求權限
      • 發送推播
      • didReceiveLocalNotification : App還活著的時候(不論在前景或背景)
      • didFinishLaunchingWithOptions : App死掉的時候用(點選後重新啟動)
      • 取消推播
      • 重複推播
    • iOS 10 使用最新的UserNotifications framework (ref: 結合 iOS 10 的 User Notifications:傳送米花兒的幸福打氣通知)
    • 網路上,Apple有各版本有多少使用者的比例圖 (key word : iOS market share version):

%e8%9e%a2%e5%b9%95%e5%bf%ab%e7%85%a7-2016-10-20-%e4%b8%8b%e5%8d%882-38-01

  • Remote
    • 推播路徑APNs(Apple Push Notification Service)螢幕快照 2016-10-20 下午2.55.30.png
    • SSL certificate, 可藉助Knuff幫我們完成發推播(as Provider)
    • 把Xcode 內Capabilites的Push Notifications 開起來
      1. upload : 上Apple Developer網站,註冊identifiers(App IDs),上傳CA
      2. download : 下載上傳CA後,Apple給我們的憑證(期限一年,記得到期前要更新)
      3. export : 本次教程用Knuff
      4. upload : 本次教程用Knuff
      5. download : 本次教程用Knuff
      6. install : 本次教程用Knuff
    • Register for remote notification :  As Local & .registerForRemoteNotifications()
    • Confirm register : 註冊完Apple給你Token,再用Knuff推播
    • 實務上,因為log in 跟 get Token 是獨立的,所以log in成功,存完帳戶資料到userDefault,再檢查是否有Token,若有,就將資料上傳到Server,同樣地,如果token拿到,存到userDefault,再檢查是否有log in,若有,就將資料上傳到Server。
    • 接收推播
      • didReceivRemoteNotification : App還活著的時候(不論在前景或背景)
      • didFinishLaunchingWithOptions : App死掉的時候用(點選後重新啟動)
      • 還有一個iOS 7的寫法 for didReceivRemoteNotification,似乎所有情境都通用,需測試確認

螢幕快照 2016-10-20 下午3.07.20.png