我有这个代码注册的应用程序加载推送通知,但没有发生。如何在iOS中正确注册推送通知?
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
singleton.deviceToken = nil;
application.registerForRemoteNotifications()
return true
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
var token = deviceToken.description.trimmingCharacters(in: CharacterSet.init(charactersIn:"<>"));
token = token.replacingOccurrences(of: " ", with: "");
singleton.deviceToken = token;
}
func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {
if notificationSettings.types == .none { application.registerForRemoteNotifications() }
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("Cannot register for push notification. Repeating.")
application.registerForRemoteNotifications();
}
- 我已经设置以上所有方法的断点,但被调用的唯一方法只有
application(application:didFinishLaunchingWithOptions:)
。所有其他人都不会被叫到。 - 我测试设备上的应用程序从不显示任何请求来显示推送通知。
- 我已经要求能够在目标上显示推送通知。它说:[✓]将推送通知添加到您的应用程序ID,然后[✓]将推送通知权利添加到您的权利文件。
- 没有印刷在控制台上。
出了什么问题?以及如何解决这个问题?至少,如果我确实未能注册推送通知,我期望在控制台上反复打印Cannot register for push notification. Repeating.
。但是控制台上没有任何东西。 PS:我刚刚更新了我的Xcode到8.2.1。但是,再次,我从未尝试推送通知,直到我升级到8.2.1,所以我不知道如果我使用旧的Xcode,推送通知是否有效。
你有没有在项目设置中启用推送通知功能选项卡上AppDelegate.swift 请求用户权限? – Vakas
@Vakas是的,我有。 –
另请参阅开发人员门户上推送通知所需的配置? – Vakas