Tag: 推送通知

远程通知方法调用两次

我已经实现了application:didReceiveRemoteNotification:fetchCompletionHandler:在我的应用程序委托来响应推送通知。 当应用程序在后台接收到通知时,立即调用此方法,并在完成时获取新数据并执行完成块。 全部按照文档。 但是,如果我点击通知警报,则会再次调用此方法,导致另一个networking调用和UI更新。 我会期望这个方法被调用一次每个推送通知,而不是一旦收到和再次采取行动。 其他人如何实施这种方法? – (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { [self loadSomeResource:^(NSData *data,NSError *error){ if (error) { completionHandler(UIBackgroundFetchResultFailed); } else if (data){ completionHandler(UIBackgroundFetchResultNewData); } else { completionHandler(UIBackgroundFetchResultNoData); } }]; }

iOS7和iOS8:如何检测用户对推送通知的请求是“否”

我正在构build一个针对iOS7和iOS8的应用程序。 我要求用户有权发送推送通知。 但由于某些原因,iOS7和iOS8都不会调用我的application:didFailToRegisterForRemoteNotificationsWithError处理程序,如果在询问推送权限时单击“否”。 我的问题:我怎么知道,在iOS7和iOS8上,当用户已经驳回推送通知的请求 – 我怎么知道他们是否拒绝了请求? 我已经看了一堆StackOverflow的答案,并已经实现了他们的build议,但它没有按照logging工作: iOS7:如果用户批准请求,系统会调用我的application:didRegisterForRemoteNotificationsWithDeviceToken: handler。 所以我可以说他们批准了。 但是,如果用户拒绝请求,那么我不会得到一个callbackapplication:didFailToRegisterForRemoteNotificationsWithError 。 这看起来像一个错误,我不能告诉用户拒绝请求。 iOS8:如果用户批准或拒绝请求,系统会调用我的application:didRegisterUserNotificationSettings处理程序。 我可以查看notificationSettings参数来查看用户是否批准了我的请求,所以很方便。 但是,如果我随后调用isRegisteredForRemoteNotifications() (例如,稍后应用程序变为活动状态), 则始终返回true – 即使用户拒绝了请求 。 所以我得到一个误报。 这看起来像一个错误,我看到其他人也注意到了这一点 。 更新:如果我随后调用let settings = UIApplication.sharedApplication().currentUserNotificationSettings() ,我可以检查settings.types来查看是否允许警报。 所以对于iOS8来说,它看起来就像我所有的设置。 我正在使用一个NSUserDefaults布尔值来跟踪我是否已经要求用户授予权限。 我正在使用硬件设备进行testing(使用iOS7的iPhone 4S和使用iOS8的iPhone 5),而不是模拟器。 我在每次testing后重置设备 ,以使其再次显示请求警报。 以下是我如何注册推送通知。 if分支在iOS8上执行, else分支在iOS7上执行: let application = UIApplication.sharedApplication() if (application.respondsToSelector("registerUserNotificationSettings:")) { let settings = UIUserNotificationSettings(forTypes: .Badge | .Alert | .Sound, […]

即使在iPhone被删除后,也会收到推送通知

我在我的应用程序中实施推送通知。 它工作正常。 现在的问题是,即使我从设备中删除我的应用程序,它正在得到推送通知。 那么有什么办法从推送通知中注销应用程序,当它从设备中删除。 希望你的帮助。 提前致谢。

当用户收到推送通知时打开一个特定的选项卡/视图

我想做一些类似Twitter的应用程序:当有人给我写信时,我收到推送通知; 如果我“滑动通知”的应用程序启动,但不是在正常的stream,它开始在一个特定的视图与鸣叫有人写我! 在我的应用程序中,我有一个像RSS阅读器,推送通知到达时,有一个新的消息。 所以,我想打开“单一的新闻观点”,而不是主视图(现在正在发生)。 我能做什么? 谢谢

上传到iTunes商店时发生错误

使用Xcode 4.3.2。 从昨天开始,我无法上传到iTunes Store。 我找不到任何理由。 存档 – >validation…没问题。 但是,分发时发生错误。 我的应用程序正在使用推。 我的Xcode版本是4.3.2。 我怎样才能摆脱这个状态呢? 请帮助我…并且谢谢。

使用Firebase实施推送通知的最佳方法

我是iPhone应用程序编码器,并且使用Firebase作为我的后端服务器。 Firebase不支持推送通知,所以我一直在试图弄清楚如何将它们包含在我的应用程序中。 我已经阅读了这个问题: 如何使用Firebase将警报消息发送给特殊的在线用户,但看起来更像是一种解决方法。 有没有答案如何做到这一点? 是否有第三方或API可能无缝实现此function? 我试过的一个解决scheme是使用Zapier将Firebase连接到Pushover。 在这一点上,我已经能够观察到我正在编码的应用程序中的事件,然后在iPhone上的推送应用程序中获取通知。 不过,理想情况下,我想在我的应用程序中收到通知,而不是在推送应用程序中,因为我不希望用户需要pushover才能使用我的应用程序,因为我希望用户能够接收他们自己的独特通知,而不是每个人的通知。 有没有人有如何处理这个问题的build议? 谢谢您的帮助! 编辑这不是这个问题的重复: 是否Firebase处理推送通知? 因为我知道Firebase不会直接处理推送通知。 我正在寻找处理Firebase推送通知的最佳间接方式。

当应用程序被删除,然后重新安装时,iOS推送通知行为

我遇到了一个不寻常的情况,用户在我的应用程序被删除,然后重新安装时,继续收到通知。 情况如下: 用户从appstore安装应用程序 用户login到我们的应用程序,我们注册他们的通知 用户从他们的设备上删除应用程序 用户从appstore重新安装应用程序 即使用户尚未启动应用程序,login等,用户也会收到通知 我对APN架构的理解是,一旦你的应用从你的设备中删除,它就会被操作系统本身从APN注销。 应用程序的重新安装将不会重新启用通知,直到您调用“registerForRemoteNotificationTypes” – 所以如果使用旧的令牌发送到设备的笔记,APNs不会传递它,因为上述方法尚未被调用。 这不准确吗?

我怎样才能生成在iPhone推送通知pem文件?

使用此链接生成推送通知的Pem文件,但我不明白以下步骤… 在服务器上安装SSL证书和密钥 您应该将之前获得的SSL分发证书和私有密钥安装在运行提供商代码的服务器计算机上,并从中连接到沙箱或生产版本的APN。 为此,请完成以下步骤: 打开“钥匙串访问”实用程序,然后单击左窗格中的“我的证书”类别。 find您要安装的证书并公开其内容。 你会看到一个证书和一个私钥。 select证书和密钥,select文件>导出项目,然后将其导出为个人信息交换(.p12)文件。 以Ruby和Perl等语言实现的服务器通常能够更好地处理Personal Information Exchange格式的证书。 要将证书转换为此格式,请完成以下步骤: 在KeyChain Access中,select证书并selectFile> Export Items。 select个人信息交换(.p12)选项,select一个保存位置,然后单击保存。 启动terminal应用程序并在提示后input以下命令:openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes。 将.pem证书复制到新计算机并将其安装在适当的位置。

在iOS的AdHoc发行版上使用沙盒APNS

我一直在阅读一些苹果的文档,以及其他许多问题,但还没有find这个问题的答案。 我有一个现有的工作stream程来为QA成员和betatesting人员生成AdHoc发布版本。 现在我已经添加了对推送通知的支持,我希望能够对这些通知path进行testing。 我认为开发人员构build,使用开发configuration文件进行签名,为沙箱/开发APNS环境生成令牌,以及使用分发预配configuration文件(无论是预定用于AdHoc分发还是app store分发)为生产APNS环境生成令牌。 我相信这可以通过打开不同的.mobileprovision文件并检查aps-environment密钥来确认。 我想知道是否有办法使我的AdHoc分布版本使用沙盒APNS环境,而不是生产APNS环境。 如果我真的希望QA和betatesting者使用沙盒APNS,我是否会想方设法让他们运行开发版本,而不是分发版本? 还是我的假设是关于工作的方式? (引用此帖和本文 )

当用户使用iOS Swift轻击推送通知时,在特定视图中打开应用程序

我的应用程序允许远程推送通知给用户。 当用户点击推送通知时,如何使其在特定的视图控制器中打开? 我希望应用程序打开并根据收到的推送通知导航到特定的视图控制器。