Firebase发送带有主题的通知

时间:2019-01-11 07:10:18

标签: ios firebase push-notification

我尝试发送带有主题的通知,但是它不起作用。

这是我的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
if #available(iOS 10.0, *) {
        // For iOS 10 display notification (sent via APNS)
        UNUserNotificationCenter.current().delegate = self
        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,
            completionHandler: {_, _ in })
        // For iOS 10 data message (sent via FCM
        Messaging.messaging().delegate = self
    } else {
        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)
    }

    application.registerForRemoteNotifications()
    FirebaseApp.configure()
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    #if DEVELOPMENT
    Messaging.messaging().setAPNSToken(deviceToken, type: .sandbox)
    #else
    Messaging.messaging().setAPNSToken(deviceToken, type: .prod)
    #endif

    if let token = Messaging.messaging().fcmToken {
        Messaging.messaging().subscribe(toTopic: "news") { error in
            print("Subscribed to news topic")
        }
        PublicMessage.notificationToken.accept(token)
        PetAPIProvider.default.requestJSONData(.firebasetoken(token: token))
            .subscribe(onNext: { _ in

            })
            .disposed(by: _bag)
    }
}

...

extension AppDelegate: MessagingDelegate {
func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {

}

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")
    Messaging.messaging().subscribe(toTopic: "news") { error in
        print("Subscribed to news topic")
    }
}

}

我是通过Firebase控制台发送的,它不起作用。

0 个答案:

没有答案