Tag: apple push notifications

当我收到静默推送通知时,iOS会唤醒我的应用程序吗?(当应用程序不处于运行状态时)

更新问题: 要求是; 一旦我收到安静的通知,我想运行一个Web服务,并在通知栏中显示一个class轮。 它也必须工作,如果应用程序也被杀害。 任何解决方法? 我正在尝试下面的方法。 我是iOS的新手,我在静音推送通知,努力了很多,并陷入困境。 当应用程序未启动时(即从应用程序切换器删除应用程序时),当iOS收到静默推送通知时,iOS是否会唤醒我的应用程序? 我的工作量是 { aps: { content-available: 1, sound: "" } } 。 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler{ int CA=[[[userInfo valueForKey:@"aps"] valueForKey:@"content-available"] intValue]; if (CA==1) { my action… } completionHandler(UIBackgroundFetchResultNewData); } 这个方法被调用,并且当应用程序处于前台和后台时工作正常。当应用程序不处于运行状态时(例如,应用程序未从应用程序切换器启动或死亡),唤醒我的应用程序。

如何在Firebase控制台中使用Apple的新的.p8证书

随着近来苹果开发者账户的逐渐升级,我面临着一个难题,即在尝试创build推送通知证书时,它向我提供了(.p8)证书,而不是可以导出到(.p12)的APNs证书。 Firebase控制台只接受(.p12)证书,以便如何从这些新的(.p8)证书中获取证书。

logging更新中的CloudKit推送通知停止工作

编辑 :今天27.08.2015重新testing,它再次运作,苹果已经修复它。 我有一个应用程序在开发模式。 应用程序使用CKSubscription来获取服务器上的更改通知,为所有三个选项进行configuration:创build,更新,删除。 一切工作正常,但最近在回归testing期间,我发现应用程序没有收到logging更新通知,创build和删除通知仍然工作。 当我在仪表板上选中时,所有三个选项的设置都正确,并且应用程序注册了CKSubscription,因为它是几天前像魅力一样工作的。 我没有从CloudKit获得任何错误。 开发环境的重置没有帮助。 我已经重新testing了这个版本,我确信它正在工作,并得到了相同的结果。 任何想法可能会导致这个问题,还有什么我应该检查/尝试? 附加信息:我想在服务器端可能会出错。 在订阅CloudKit事件和处理推送通知的代码中,我没有更改任何内容,无论如何,它的工作版本也没有得到更新通知。 我正在编写的应用程序已经发布,因此更换容器是不行的。 不知道这是否会导致这个问题,只是想提一下:应用程序使用相同的容器在云中存储核心数据 – 应用程序升级的目标是将数据迁移到CloudKit并将其用作云专门存储。 令人困惑的是,一切工作都好几个星期,并没有任何明确的理由突然停止工作,可能作为加载testing的影响,增加loggingtypes… testing从头开发的应用程序:我已经写了一个简单的testing应用程序来检查接收通知。 我只能收到创buildlogging的通知。 我的代码有什么问题: import UIKit import CloudKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let container = CKContainer.defaultContainer() func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let settings = UIUserNotificationSettings(forTypes: .Alert, categories: nil) application.registerUserNotificationSettings(settings) […]

苹果推送通知在后台问题

我正在使用parse.com作为我正在构build的testing应用程序的APNs提供程序。 我已经确认,推送通知正在工作,因为我已经能够成功接收警报,当应用程序在前台。 此外,我有我的plist中指定的UIBackgroundModes键的remote-notification值。 在我的应用程序中,我想要在收到推送通知时将用户的当前位置数据发回给我的应用程序特定的parse.com数据库。 我实际上并不关心通知有效载荷本身,因为通知只是获取一小段信息的一种手段。 该应用程序不断地在后台收集数据,并将其存储在持久的NSDictionary 。 我已经把位置发送代码放在application:didReceiveRemoteNotification:方法。 如果我的应用程序在前台收到通知时,该方法被调用。 如果我的应用程序在后台,该方法不被调用。 难道我做错了什么? 是否可以在application:didReceiveRemoteNotification:执行一个API请求application:didReceiveRemoteNotification:当应用程序在后台,用户没有与通知交互? 编辑:问题仍然存在,即使当我使用application:didReceiveRemoteNotification:fetchCompletionHandler: 注意:充满位置数据的我的NSDictionary不是空的。 另外,我不试图在后台做任何UI操作 – 只是试图执行一个API请求。

如何testing生产推送通知?

到目前为止,我使用开发推送证书和推送通知很好。 现在我想提交我的应用程序到苹果,所以我创build了一个生产证书,并将其设置为“代码签名身份” – >“发布” 我也把.p12文件放在我的生产服务器上。 但现在推动不起作用。 当我从Xcode运行时,它是否工作? 或者只是从App Store下载应用程序时才工作? 如果是的话,我该如何testing呢?

有谁知道如何在C#中编写Apple推送通知提供程序?

苹果真的有关于供应商如何连接并传达给他们的服务的文档很糟糕(在写这篇文章的时候 – 2009)。 我对协议感到困惑。 如果有人可以提供这样做的C#示例,将不胜感激。

应用程序:didReceiveRemoteNotification:fetchCompletionHandler不调用

它出现了函数application:didReceiveRemoteNotification:fetchCompletionHandler在应用程序强制退出时不被调用。 我的印象是,无论应用程序处于什么状态,函数都会被调用,但只有当应用程序已经在后台运行时才会调用该函数。 如果还没有使用新的iOS 7远程通知背景模式运行,有没有办法在后台唤醒应用程序?

实施PushKit并testing开发行为

我想在我的应用程序(VoIP应用程序)中实施PushKit服务,但我有以下怀疑:我看到,我只能生成生产的VoIP证书,它的工作原理,如果我尝试在开发设备上testingVoIP推送通知服务? 这是我的执行testing: 通过这3行代码,我可以在didUpdatePushCredentialscallback上获得推送令牌,用于保存到我的服务器。 PKPushRegistry *pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()]; pushRegistry.delegate = self; pushRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP]; 服务器端我生成一个“正常”有效载荷推送通知只有警报文本,我发送到存储在我的服务器的VoIP令牌。 我使用debugging日志的callback,但他们永远不会被调用! – (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(NSString *)type { NSLog(@"didInvalidatePushTokenForType"); } -(void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type { NSLog(@"didReceiveIncomingPushWithPayload: %@", payload.description); } -(void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type { if([credentials.token length] == 0) { NSLog(@"voip token NULL"); return; } NSLog(@"didUpdatePushCredentials: […]

didRegisterForRemoteNotificationsWithDeviceToken不在ios8中调用,但didRegister …设置是

我跟着这个线程 ,但方法didRegisterForRemoteNotificationsWithDeviceToken仍然没有被调用: 该文件说: 在调用UIApplication对象的registerForRemoteNotifications方法后,应用程序在设备注册成功完成时调用此方法 didRegisterUser似乎很好,但did register notif 。 这是我在AppDelegate中的代码(应用程序版本是8.1): – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //register notif UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil]; [application registerUserNotificationSettings:settings]; return YES; } – (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings { //register to receive notifications [application registerForRemoteNotifications]; NSLog(@"didRegisterUser"); } -(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { […]