在 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 面板接收消息或从第三方服务器发送令牌