【问题标题】:Problem With PushNotification if you select No at the first time如果您第一次选择否,PushNotification 会出现问题
【发布时间】:2010-08-04 20:57:58
【问题描述】:

正如我在该主题的标题中所说,我的应用程序的推送通知存在问题。 有2种情况: 当应用程序询问您是否需要推送通知并且您推送 OK 时,它工作得很好。

这个功能:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken

在 registerForRemoteNotificationTypes 被调用时被调用:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // Add registration for remote notifications
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
    ...
}

但是当你一开始选择NO,然后你改变你的设置来接受推送通知时,什么都不会附加,并且这个函数 didRegisterForRemoteNotificationsWithDeviceToken 永远不会被调用。

请帮帮我,我快疯了!

【问题讨论】:

    标签: iphone push-notification


    【解决方案1】:

    我看到您在以下位置注册远程通知:

    - (void)applicationDidFinishLaunching:(UIApplication *)application
    

    如果您的应用程序在支持多任务处理的 iOS 设备上运行,那么这可能不是正确的位置。

    当您最初从冷启动应用程序时会调用上述方法。这是提示您接受或拒绝推送通知的时间 - 在您的情况下拒绝。

    当您稍后退出应用程序以更改设备范围控制面板中的设置时,应用程序不会退出 - 它只是作为前台应用程序退出。当您在控制面板中启用推送通知并返回到您的应用程序时 - 应用程序不会再次启动,而是从后台移动到前台。

    此时您的应用程序委托将收到:

    - (void) applicationDidBecomeActive:(UIApplication *)application
    

    尝试在那里注册推送通知,而不是使用:

    - (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types
    

    您还可以通过在应用程序的 Info.plist 文件 (UIApplicationExitsOnSuspend) 中设置“应用程序不在后台运行”属性来防止后台运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      相关资源
      最近更新 更多