Tag: 推送通知

在显示推送通知和静默推送之前,推送触发后台刷新的通知

我想在我的应用程序中实现后台刷新function,当收到一个推送。 就在向用户显示推送通知之前,我想从后端(Parse.com)下载新消息并将其保存到数组中。 我正在按照以下指南进行操作: http : //developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/ 我不确定这个指南有多准确。 它指出: iOS 7(及更高版本)通过给予应用程序在通知用户之前更新后台内容的机会来扩展普通推送通知,以便用户可以打开应用程序并立即呈现新的内容。 所以我尝试执行我的背景推这样的: – (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler { if([[userInfo objectForKey:@"aps"] objectForKey:@"content-available"]){ NSLog(@"Doing the background refresh"); UINavigationController *navigationController=(UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController]; MyViewController *myViewController = (MyViewController *)[[navigationController viewControllers] objectAtIndex:1]; [myViewController.currentUser refreshMessagesArrayWithCompletionHandler:^(BOOL successful, BOOL newMiaos) { NSLog(@"messages refreshed the array now has %lu messages",(unsigned long)[myViewController.currentUser.messages […]

从通知打开应用程序时打开特定视图

我刚刚添加推送通知到我的应用程序。 我想这样,当用户从通知打开应用程序,它将打开一个特定的视图控制器,而不是我的rootViewController。 这是我的AppDelegate: #import "KFBAppDelegate.h" #import "KFBViewController.h" #import "AboutUs.h" #import "ContactUs.h" #import "KYFB.h" #import "KFBNavControllerViewController.h" #import "KFBTabBarViewController.h" #import "RSFM.h" #import "LegislatorInfo.h" #import "Events.h" #import "ActionAlertsViewController.h" #import "UAirship.h" #import "UAPush.h" #import "UAAnalytics.h" @implementation KFBAppDelegate – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // This prevents the UA Library from registering with UIApplcation by default when // registerForRemoteNotifications is […]

iOS推送通知:如何检测当应用程序在后台时用户是否轻敲通知?

有很多关于这个主题的stackoverflow线程,但我仍然没有find一个好的解决scheme。 如果应用程序不在后台,我可以在application:didFinishLaunchingWithOptions:检查launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] application:didFinishLaunchingWithOptions:调用以查看是否从通知打开。 如果应用程序在后台,所有postbuild议使用application:didReceiveRemoteNotification:并检查应用程序状态。 但是,正如我试验(也作为这个API的名称build议),这个方法被调用时收到的通知,而不是轻拍。 所以问题是,如果应用程序启动,然后后台,你知道从application:didReceiveNotification接收通知application:didReceiveNotification ( application:didFinishLaunchWithOptions:不会触发),你怎么知道用户是否恢复从应用程序点击通知或只是点击应用程序图标? 因为如果用户点击通知,则期望打开通知中提到的页面。 否则它不应该。 我可以使用handleActionWithIdentifier进行自定义动作通知,但是只有当自定义动作button被触发时才触发,而不是在用户点击通知主体时触发。 谢谢。 编辑: 在阅读下面的一个答案后,我想这样可以澄清我的问题: 我们如何区分这两种情况: (A)1.app进入后台; 收到通知 3.用户点击通知; 4.应用程序进入前台 (B)1.app进入背景; 收到通知 3.用户稍后忽略通知并点击应用程序图标; 4.应用程序进入前台 由于application:didReceiveRemoteNotification:在步骤2中都触发了这两种情况。 或者, application:didReceiveRemoteNotification:仅在步骤3中触发(A),但我以某种方式configuration了我的应用程序错误,所以我在步骤2看到它?

使用API​​时,Firebase API不会发送推送通知

我正在从Parse迁移到Firebase,并面临我们的ios应用程序出现问题。 Firebase API不会将推送通知发送到ios应用程序。 这就是即时通讯发送到https://fcm.googleapis.com/fcm/send { "to: "<registration token>", "priority": "high", "data": { "customId": "<my custom id>", "badge": 1, "sound": "cheering.caf", "alert": "New data is available" } } 而服务器正在成功返回 { "multicast_id":6917019914327105115, "success":1, "failure":0, "canonical_ids":0, "results":[{"message_id":"0:1468961966677585%f0f84693f9fd7ecd"}] } 但推动并没有实现。 如果我使用Firebase信息中心发送推送,即使直接使用令牌,推送也会发送。 我看到另一个开发人员在另一个Stackoverflow问题中抱怨无法使用服务器API发送推送通知 我尝试了join“优先级”的解决scheme:“高” ,但没有解决问题。 但它给了我一个线索:他们也在使用dev / sandbox推送证书。 我的怀疑是仪表板可以使用ios开发证书,但API不能。 这个问题只发生在iOS设备上,因为android应用程序正在通过API推送。 任何人都可以使用API​​和开发证书发送推送?

iOS定时后台处理

我希望我的应用程序能够 – 比如说每12个小时 – 即使应用程序没有正常运行或处于后台运行状态,向服务器发送HTTP请求,获取带有版本号的小文件,如果服务器上的版本高于客户端上的版本,然后再下载一些文件到磁盘,以便下次启动时它会在磁盘上find新的内容。 哪些devise模式最适合在ios中执行此类任务? 有一些在我脑海中浮现,但我不是那么有经验。 也许推送通知,当有新版本可用时,服务器需要向所有客户端发送消息。 或者,有什么类似的Android的服务 ,可以帮助? 或者,也许每次应用程序启动(或前往)只是ping服务器,看看有什么新的东西。 或者,每当应用程序开始ping服务器,并在下一个12小时添加一个计时器,以防这个应用程序仍然在前台。 或者,每次应用程序启动时,检查首选项值,如果最后一次服务器被ping通的时间超过12小时,则立即进行ping操作。 然后保存这个ping时间。 选项1可能在服务器上更加沉重,实现起来可能更为复杂(考虑一个新版本),但可能是真正的后台更新的唯一select。 但即便如此,我仍然不希望用户不得不对一些低级数据更新b / wa客户端和服务器做出反应(这就是事实),所以除非推送通知可以直接进入应用程序并执行没有用户干预的东西,那么这个选项不会飞。 选项3-5都是可能的,听起来不太难,但只有当应用程序在前台时才能工作。 据我所知,后台应用程序只能播放音乐,获取位置更新或voip更新。 甚至有这样的声音试图逃避这个限制。 (并没有被批准到商店)。 也许现在的局限性是很好的,那么我该如何玩规则并能够实现周期性的服务器ping(或者更一般地说,即使应用程序在bg中也能解决定期同步客户端和服务器的问题)? 谢谢

在App终止时处理推送通知

当我的应用程序没有运行,并收到推送通知,如果我点击该通知,应用程序启动 – 但它不会提示用户与我设置的警报视图,询问他们是否要查看通知的内容与否。 它刚刚启动,并坐在那里。 当应用程序运行时,推送通知可以完美地工作 – 既可以作为活动应用程序,也可以在后台运行 – 但是当应用程序没有运行时没有任何工作正常。 我尝试在应用程序中注销launchOptions NSDictionary:didFinishLaunchingWithOptions:查看加载它的是什么 – 但是它出现为“(null)”。 所以它基本上不包含任何内容 – 这是不合理的,不应该包含通知的负载? 任何人有任何想法如何使推送通知工作,当他们到达而应用程序不运行? 我的意思是当应用程序处于非运行状态时如何处理推送通知。 如果如果您收到很多通知,并且您没有打开应用程序,您也不会点击系统的通知面板。 你如何保留这些推后检索。

苹果推送通知不生产

我们完全被困住了,请帮忙。 我和我的团队做了一个iPhone应用程序,这是我们第一次尝试iOS。 一切都很好,直到我们提交我们的应用程序,并成为可用的应用程序商店 – 推送通知服务不起作用。 我在网上search,并试图通过人们的build议仔细检查我们的应用程序,但我找不到有什么问题。 所以这个问题贴在这里。 这些是我们所做的: 我们构build应用程序,假设它被命名为“AppMaster”。 我们在iOS Provisioning Portal上创build了名为“pushtest”的AppId。 这个ID在开发和生产上都启用了推送通知。 我们从上面的appId创build了名为“AppMasterPushTest”的开发configuration。 这个configuration是为了进行内部testing,团队中的每个人都在Mac上安装它。 我们的服务器是由Java实现的,我们使用java-apn包。 在testing过程中,我们下载了用于开发的authentication文件并写出了.p12文件,并通过使用该包的api – withSandboxDestination()将该消息推送到“沙盒”服务器。 testing进展良好,通知收到。 我认为我们已经准备好了,所以我们创build了另一个名为“AppMaster”的AppId,并且只为生产启用了推送通知。 这个ID是写在应用程序的包标识符。 我们在步骤5中从AppId开始另一个名为“appMaster”的生产供应,分配方法设置为“App Store”。 下载它并重build应用程序。 这个提交给苹果,并在应用程序stroe活着。 服务器端,我们下载了生产authentication,并再次写出.p12文件。 并通过使用api-withProductionDestination()将程序推送到生产服务器,并且.p12被写出。 我们从App Store安装了应用程序。 可悲的是,通知从来没有交付过。 有什么我们错过了吗? 顺便说一句,我们在第5步创build的ID看起来像“XXX.com.company.appname”,但在应用程序的包标识符中,我们只设置“com.company.appname”部分没有前缀。 这可能是问题吗? 任何想法是受欢迎的。 请成为我们的救星。 谢谢。

苹果推送通知限制

我想知道是否有限制的苹果推送通知,我们可以一次发送给用户的数量? 换句话说,我可以使用APNS服务一次发送100,000个推送通知吗?

在应用内启用或禁用Iphone推送通知

我有一个iPhone应用程序是启用接收推送通知。 目前,我可以通过转到iphone设置/通知来禁用我的应用程序的推送通知。 但我想在我的应用程序中添加一个开关或button来启用或禁用推送通知。 这可以做到,因为我看到它在foursqure iPhone应用程序做到了。 他们在设置呼叫通知设置中获得了一个部分,用户可以为应用程序启用或禁用不同types的通知。 我看遍了networkingfind一个适当的解决scheme,但仍然没有find一个办法。 任何人都可以给任何想法如何做到这一点? 提前致谢 :)

APN(Apple推送通知)有效负载大小限制

在官方文档中,您可以find信息: 每个推送通知包含一个有效载荷 有效载荷包含有关系统如何警告用户以及您提供的任何自定义数据的信息。 允许通知有效载荷的最大大小是256字节 ; Apple推送通知服务拒绝任何超出此限制的通知。 但是在WWDC 14中我们可以看到这个截图: 我想知道是否有官方的苹果声明推送通知的大小限制。 我testing了它,大于256字节,但文档说不应该。 有人可以确认或否认远程通知的大小?