如何在不重新提示启用推送通知的情况下切换推送通知提供程序?

问题描述:

有许多像Appboy(Braze),Localytics,Urban Airship等第三方推送通知提供程序。我们的应用程序正在使用“提供程序A”生产,但我们正在切换到“提供程序B”。全新安装获取推送通知,但升级安装不会。在检查后,它看起来像没有调用didRegisterForRemoteNotificationsWithDeviceToken。如何在无需重新提示用户的情况下启用推送?如何在不重新提示启用推送通知的情况下切换推送通知提供程序?

只需再次拨打registerForRemoteNotifications即可。如果他们已经注册并且成功调用了didRegisterForRemoteNotificationsWithDeviceToken,iOS将不会再次提示他们。见下文。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    //... 
    let key = "OneTimeSync" 
    let didReSync = UserDefaults.standard.bool(forKey: key) 
    if didReSync == false{ 
     UIApplication.shared.registerForRemoteNotifications() 
     UserDefaults.standard.set(true, forKey: key) 
    } 
    //... 
}