在 Swift 中初始化 FCM

按照以下步驟在 swift Project 中新增 FCM

1-如果你還沒有 Xcode 專案,請立即建立一個。如果你沒有 Podfile,請建立一個:

$ cd 你的專案目錄
$ pod init

2-新增要安裝的 Pod。你可以在 Podfile 中包含 Pod,如下所示:

pod’Firebase /
Core’pod’Firebase / Messaging'

3-安裝 pod 並開啟 .xcworkspace 檔案以在 Xcode 中檢視專案。

$ pod install
$ open your-project.xcworkspace

4-從 plist 下載 GoogleService-Info.plist 檔案並將其包含在你的應用程式中。

5-將 APNs 證書上載到 Firebase。 APN 證書

6-在專案的 appDelegate 檔案中新增 import Firebase

7-在“application:didFinishLaunchingWithOptions”中新增“FIRApp.configure()

8-註冊遠端通知

  if #available(iOS 10.0, *) {
  let authOptions : UNAuthorizationOptions = [.Alert, .Badge, .Sound]
  UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptions(
    authOptions,
    completionHandler: {_,_ in })

  // For iOS 10 display notification (sent via APNS)
  UNUserNotificationCenter.currentNotificationCenter().delegate = self
  // For iOS 10 data message (sent via FCM)
  FIRMessaging.messaging().remoteMessageDelegate = self

} else {
  let settings: UIUserNotificationSettings =
  UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
  application.registerUserNotificationSettings(settings)
}

application.registerForRemoteNotifications()

9-獲取註冊令牌

let token = FIRInstanceID.instanceID().token()!

10-如果你想監視令牌更改,請使用 appDelegate 檔案中的程式碼

func tokenRefreshNotification(notification: NSNotification) {
if let refreshedToken = FIRInstanceID.instanceID().token() {
    print("InstanceID token: \(refreshedToken)")
  }

  // Connect to FCM since connection may have failed when attempted before having a token.
  connectToFcm()
}

11-接收來自 fcm 的訊息在 appDelegate 中新增以下程式碼

func connectToFcm() {
  FIRMessaging.messaging().connectWithCompletion { (error) in
    if (error != nil) {
      print("Unable to connect with FCM. \(error)")
    } else {
      print("Connected to FCM.")
    }
  }
}

12-和斷開連線使用

func applicationDidEnterBackground(application: UIApplication) {
  FIRMessaging.messaging().disconnect()
  print("Disconnected from FCM.")
}

在你的 appDelegate 中。

初始化完成,客戶端準備好從 fcm 面板接收訊息或從第三方伺服器傳送令牌