【发布时间】:2019-02-17 23:16:58
【问题描述】:
我有一个生成 FCM 令牌的 IOS 应用程序,但是当我们发送推送通知时,它会显示以下结果。
{"multicast_id":7286183653567149258,"success":0,"failure":3,"canonical_ids":0,"results":[{"error":"InvalidRegistration"},{"error":"InvalidRegistration"},{"error":"InvalidRegistration"}]}Array{"multicast_id":7286183653567149258,"success":0,"failure":3,"canonical_ids":0,"results":[{"error":"InvalidRegistration"},{"error":"InvalidRegistration"},{"error":"InvalidRegistration"}]}
当我使用 Firebase 云消息传递控制台发送测试推送通知时,它会发送到设备。
我的快速代码是:
import UIKit
import IQKeyboardManagerSwift
import Firebase
import FirebaseMessaging
import FirebaseInstanceID
import UserNotifications
import Alamofire
import FirebaseAuth
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var count:Int = 0
let gcmMessageIDKey = "gcm.message_id"
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
IQKeyboardManager.sharedManager().enable = true
FIRApp.configure()
application.applicationIconBadgeNumber = 0
count = 0
if #available(iOS 10.0, *) {
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions) {_,_ in }
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
//application.registerForRemoteNotifications()
//NotificationCenter.default.addObserver(self, selector: #selector(self.tokenRefreshNotification), name: .firbaseInstanceIDTokenRefresh, object: nil)
return true
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
FIRInstanceID.instanceID().setAPNSToken(deviceToken as Data, type: FIRInstanceIDAPNSTokenType.prod)
}
【问题讨论】: