Tag: 苹果推送通知

在iPhone上处理时,如何使iPad上的iOS推送通知无效?

比方说,用户在iPhone和iPad上有一个消息应用程序。 他们从服务器得到一条新消息,所以推送通知被发送到他们的两个设备。 现在,用户拿起他们的iPhone,阅读通知中心的消息。 我现在如何从iPad的通知中心(和应用程序徽章号码)中删除消息,因为它已经被阅读了?

如何find苹果推送通知发送给用户或不从我们的服务器?

苹果推送通知服务是iPhone应用程序中的新function。 我已经学习了这些教程和苹果文档, www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2 我们正在从服务器(PHP)向Apple推送通知服务器发送通知,APNS会将通知推送到设备。 在这种情况下,我们如何才能知道通知已经成功或不从我们的服务器交付用户? 如果我们向所有订阅的用户(超过100个用户)发送通知,那么我们是否可以为这100个用户提供发送报告?

单击时从通知中心删除通知

当点击通知中心并启动应用程序时,是否可以删除通知中心的推送通知? 大多数应用程序似乎将通知留在原地。 我读了另一个问题,这个: [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 可能工作,但它不适合我。 Facebook应用程序绝对似乎删除一旦点击推送通知。

如果在iOS 8.0及更高版本中不支持registerForRemoteNotificationTypes:则构buildiOS版本

如果设备注册通知的方式发生了重大变化,并且我们不能再使用registerForRemoteNotificationTypes:如果我们不能使用Xcode 6testing版,我们如何构build新版本的应用程序来支持iOS 8? 我们将不得不build立并提交Xcode 6 GM版本的发布date,以便用户继续获取推送通知?

通过Xcode bot创build的IPA无法为APNS运行,但是如果通过Xcode本身手动构build或通过Xcode构build为归档

我有一个CI构build机器运行Xcode服务器,并使用机器人来生成一个构build,但是通过机器人构build的.ipa无权注册APNS令牌。 具体地说,didFailToRegisterForRemoteNotificationsWithError被调用,并且运行时警告“”应用程序没有find有效的“aps-environment”授权string“。 但是,如果我在一个separte开发PC上构build应用程序,或者我在CI机器上独立于bot创build它,那么一切都很好。 我已经在多个应用程序中广泛使用了推送通知,所以如果应用程序没有使用正确的configuration文件进行签名,则始终会显示消息“无效的”aps-environment“应用程序的权利string”。 然而,我绝对100%确认,应用程序正在构build相同的configuration文件,当作为机器人构build的一部分运行时,我手动构build。 我也知道Xcode在机器人下运行时为运行的用户下载configuration文件到不同的位置,我也知道,当我手动构build时,机器人作为系统运行而不是login用户。 我考虑了所有这些差异,但仍然无法让bot构build工作。 更重要的是我已经使用这个完全相同的CI机器以前build立这个应用程序使用jenkins(也作为系统运行)启用推,它的工作! 这是我所做的/检查: 1)手动将项目下载到桌面,在Xcode中打开并检查在构build设置中被起诉的签名身份和供应configuration文件。 使用Xcode手动构build和运行 – >它的工作原理作为集成运行的一部分,通过机器人间接地下载项目。 在Xcode中打开由Bot下载的项目(Xcode服务器将其下载到:/ Library / Server / Xcode / Data / BotRuns // Cache / NNNN)。 做同样的事情,检查签名标识和configuration文件。 它们与我在桌面上构build时所使用的相同 好,所以问题不是由于使用的实际签名身份和configuration文件的差异造成的。 2)手动运行Xcode时,将configuration文件下载到位置X,但是Bot将configuration文件下载到位置Y.因此,我检查了X和Y的内容,以确保Y没有丢失(如果有但是构build实际上会失败,而不是)。 为了使它们完全相同,我已经将X的全部内容复制到Y中,并再次运行机器人(它们不会被机器人覆盖) – 所以现在机器人和桌面版本使用完全相同的configuration文件仍然存在.ipa执行时有所不同。 顺便提一句,X的位置是〜/ Library / MobileDevice / Provisioning Profiles,Y的位置是/ Library / Server / Xcode / Data / ProvisioningProfiles。 3)当我手动build立它是作为login用户,但是当机器人build立它是系统。 所以在钥匙串中,我尝试将用户钥匙串中的所有证书和密钥复制到系统钥匙串中。 是的,这仍然没有什么区别,由build bot创build的.ipa无法正常运行,而通过Xcode手动创build的build确实运行。 这让我很生气,已经浪费了几天时间,还有什么我可能错过了或者可以尝试解决这个问题? […]

如何在iOS中清除推送通知徽章数量?

一旦启动应用程序,我想清除推送通知的徽章计数。不清楚在哪里设置下面的代码。请简要说明清除徽章计数。 [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

苹果推送服务,而不是苹果生产iOS推送服务

我正在尝试为生产iOS推送服务创build一个证书。 相反,我得到一个苹果推送服务 。 我怎样才能创build一个专门的苹果生产iOS推送服务证书? 最高的证书是我以前得到的。 最下面的是我现在得到的。 我使用Pusher应用程序来testing我的推送通知证书,它无法读取新的Apple推送服务的p12。

APN自定义通知声音问题

我有远程通知设置和工作正常。 但是,当收到通知时(当应用程序不在前台时),我必须播放自定义声音。 我已经添加了一个名为customSound.wav的文件到我的应用程序包,并确保“添加到目标”被选中时,我把它拖放到我的项目(这是正确的方式? 服务器端:相同的文件名被指定为“声音”:“customSound.wav”。 在我的didReceiveRemoteNotification我打印userInfo字典,它是这样来的: aps = { alert = "Good Evening Sir"; badge = 1; "custom_filed1" = 1; "custom_field2" = "AAA-BBB-CCC"; name = "Sir Hubert"; sound = default; }; 正如你所看到的,声音仍然是“默认”。 我意识到,如果找不到指定的声音,将播放默认声音 – 字典中的声音值也将为“默认”,或者应该是有效载荷json中指定的文件名。 这些在有效载荷中指定的顺序是重要的。 我已经尝试了其他线程的build议,但不为我工作。 我无法显示JSON,因为我目前无法访问系统。 任何关于我可能做错的build议?

添加button以推送通知警报

有没有办法设置用户如何看到推送通知警报框? 我的通知出现没有查看/取消button,但我从这些button接收不同的应用程序的其他人。 发送推送通知之前,我应该设置一个设置吗? 谢谢!

APNS推送通知不适用于生产

我创build了一个应用程序来发送来自Web服务器的远程通知。 当我在开发模式下testing应用程序时,所有的通知在手机上正确到达,AppStore发布后,应用程序没有收到通知。 这就是我所做的: 为生产创造了一个私钥,一个用于开发。 生成在我的App ID两个SSL证书通过传递以前的CertFile生成。 我100%确定已经正确生成了2个密钥,并正确传递它们以从AppID下载开发者中心下载SSL证书。 创build一个文件.pem开发和一个生产(通过转换从我的KeyChain等提取的文件.p12)。 创build了2个不同的configuration文件,一个用于开发,另一个用于连接到步骤1的AppID。 使用在步骤4中创build的正确的供应configuration文件在“生成设置”中签署应用程序。 创build一个Web应用程序来捕获和存储用户令牌。 创build一个PHP页面来testing推送通知发送。 这里是我testing的: 在沙箱链接上用telnettesting了开发生成的.pem文件,并给出了一个成功的答案。 用生产链接上的telnettesting生成的.pem文件,并带有成功的答案。 我100%肯定已经在我的networking应用程序上存储了我iPhone的开发标志。 我100%肯定已经在我的networking应用服务器上存储了我的iPhone的生产令牌。 我100%肯定会通过我的PHP页面正确的消息,苹果服务器(无论是开发和生产)。 这个php页面总是返回Apple Server的成功消息(包括开发和生产)。 这里是我如何在Xcode上签名的应用程序: 这里是发送通知的PHP页面的代码: $ctx = stream_context_create(); //stream_context_set_option($ctx, 'ssl', 'passphrase', 'development_pwd'); //stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck_development.pem'); //$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); //test stream_context_set_option($ctx, 'ssl', 'passphrase', 'production_pwd'); stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck_production.pem'); $fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, […]