gpt4 book ai didi

swift - Cocos2d FCM 推送通知不起作用

转载 作者:行者123 更新时间:2023-11-30 13:18:46 25 4
gpt4 key购买 nike

我正在创建一个游戏,我想在其中集成推送通知。为了便于使用,我连接到 FCM,信任 Google 的服务。

正如我所想,我正确集成了 FCM,但仍然不知道缺少什么,但当我从 Firebase 控制台发送任何通知时,我的设备上未收到通知。

从仅开始一次,我就能够收到通知,但由于我的无知,该通知也丢失了,但此后我无法使用相同的代码和开发配置文件接收通知事件。

如果有人指出我的错误并帮助我清除障碍,那就太好了。

当我将 FCM 集成到 Cocos2d 游戏中时,我已在 MainScene.swift 中编写了代码

    override func onEnter() {
super.onEnter()

//if !self.globalHolders.isFBaseConfigured {
self.setupPushNotification()
// self.globalHolders.isFBaseConfigured = true
//}

}

override func onExit() {
super.onExit()

NSNotificationCenter.defaultCenter().removeObserver(self, name: kFIRInstanceIDTokenRefreshNotification, object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIApplicationDidBecomeActiveNotification, object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIApplicationDidEnterBackgroundNotification, object: nil)
}


func setupPushNotification () {
let application = UIApplication.sharedApplication()

// Register for remote notifications
if #available(iOS 8.0, *) {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
} else {
// Fallback
let types: UIRemoteNotificationType = [.Alert, .Badge, .Sound]
application.registerForRemoteNotificationTypes(types)
}

FIRApp.configure()

// Add observer for InstanceID token refresh callback.
NSNotificationCenter.defaultCenter().addObserver(self, selector: "tokenRefreshNotification:",
name: kFIRInstanceIDTokenRefreshNotification, object: nil)

NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive:", name: UIApplicationDidBecomeActiveNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "didEnterBackground:", name: UIApplicationDidEnterBackgroundNotification, object: nil)
}

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

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

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

func didBecomeActive(application:UIApplication) {
NSLog("Did Become Active")
connectToFcm()
}

func didEnterBackground(application: UIApplication) {
NSLog("Did enter background")
FIRMessaging.messaging().disconnect()
NSLog("Disconnected from FCM.")
}

获取以下设备 token :

cMqaF0FVwbY:APA91bFMzsUmP2NKSipGMC7NTehPjBDWE72S6Fdi13iVV51ziPZvVkVw3g5NXEGooII5IVwby3ekBS4MquWyRQyF7rXDnWTDvY6eDPtL_kQQDk3Wen6V0DPv2Yf-Ym6YPi8k66aW6I-O

我也能够获取设备 token ,但无法接收通知。

如果您需要任何进一步说明,请告诉我。

最佳答案

Get Token Use Notification.object and check it. and See My Code Here Firebase Push Notification

func tokenRefreshNotification(notification: NSNotification) {
let refreshedToken:String? = notification.object
print("InstanceID token: \(refreshedToken)")

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

关于swift - Cocos2d FCM 推送通知不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37965615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com