Tag: 苹果推通知

在iOS设备上显示设备之前,可以更改推送通知消息吗?

显示我的推送通知消息是来自:+919687335565 附截图: 我只是想从Address book获取这个+919687335565联系号码的名字,并且显示这个联系人的名字,而不是push notification的电话号码。 在显示notification之前,我想用推送通知中的联系人姓名Chandreshreplace电话号码+919687335565 。 像附上截图:

在iOS上重复推送通知

这个问题可能是一样的重复苹果APNS推送通知? 但是由于那个人没有得到答案,而且我有更多的信息,我会再试一次。 重现问题的步骤: 设置通知中心显示通知作为警报,这将使问题更加明显。 确保应用程序没有在前台运行。 快速连续发送3个相同的推送通知。 等到信息到达电话,你现在不得不closures警报3次。 现在再发送1个通知,这与以前的不一样。 您现在可以看到最后一条通知,但是您还会看到之前的一条通知再次显示。 这就是问题。 如果您继续发送单个通知,前3个中的一个会在不应该时popup。 下面是一个video,这些步骤清楚地显示了问题: 在上面的链接问题中,我们和Remy Gale一样,确保我们的通知以正确的方式发送,并且每个通知只发送一次。 我们还testing了这个沙箱apns和生产apns,都performance完全一样。 如果应用程序徽章设置为0,问题就会消失,然后从通知中心删除所有通知。 手动删除通知不会有帮助。 UIApplication *app = [UIApplication sharedApplication]; app.applicationIconBadgeNumber = 0; 但这不是一个解决scheme。 如果所有通知都包含唯一文本,则不会出现该问题。 向警报文本添加一个GUID将使问题消失。 将它作为自定义属性或作为本地化的参数添加到apns-payload将无济于事,因此这也不是解决scheme。 这可能很less发生在具有实时应用程序的生产环境中,但是可能发生,并且当它发生时,这对用户来说真的很烦人! 有谁知道这是为什么发生? 有没有人有一个可行的解决scheme?

iPhone iOS推送通知apns生产不发送

我一直在这个工作了一段时间。 我知道那里有很多文章,并且已经学到了很多东西。 我以同样的方式创build了我的开发和生产SSL。 开发连接到ssl://gateway.sandbox.push.apple.com:2195生产连接到ssl://gateway.push.apple.com:2195连接似乎工作正常。 至于应用程序。 开发:当我从xCode直接运行到我的设备上时,它运行开发版本。 该应用程序成功地将开发令牌logging在数据库中。 然后我运行一个服务来发送推送通知,并正确传递。 味精成功交付。 Ad-hoc:当我构build一个档案并将其导出为Ad-hoc发行版时,我仔细检查包内容codesign -dvvvv –entitlements – Elepago.app并查看aps-environment已正确设置为生产。 我将它打包并通过iTunes加载到我的设备上。 当应用程序启动时,我看到数据库中logging了新的生产令牌。 所以环境必须正确设置。 当我将推送通知发送到生产密钥(与开发完全相同,只是更改SSL .pem密钥和服务器)时,它表示已成功交付。 然而它从来没有真正到达设备! 这个问题让我疯狂。 我刚刚通过并清理了我的分销证书,并使用全新的CSR进行了重build。 我还更新了所有configuration文件以使用该新证书。 [关于这些证书如何与应用程序绑定的任何想法,除了我已经检查过的aps-environment的东西外。 任何有识之士将不胜感激。

更改推送通知声音

如何使用自定义声音进行推送通知? 根据我的研究和阅读,我发现有效载荷应该具有应用程序包中或应用程序数据容器的Library / Sounds文件夹中的文件名。 如何把文件放在那里?

苹果推送通知不会自动更改图标徽章

我看到我的iPhone(4S,iOS 5.1)中的邮件应用会在新邮件到达时自动更新徽章计数,即使应用程序未运行。 所以有可能在我的应用程序中实现这种行为,对吧? 我的应用程序成功注册了所有3种types的推送通知 – 徽章,警报和声音。 对于此应用程序的所有3种types的远程通知,电话设置均设置为开。 我的应用程序收到远程通知,并显示警报,播放声音,但它不会更新徽章号码。 如果我通过警报上的查看button启动应用程序,那么我的应用程序可以完美地读取徽章值,并且可以从代码中更改/删除/设置图标徽章。 通知到达时,iOS无法自动更改我的应用的图标徽章的具体原因? 我已经看到所有类似的post,他们都在讨论关于电话设置,或者关于它注册的通知types,或者检查有效载荷JSON包括徽章。 有没有其他原因可能会导致这个问题? 这是我的代码块: 每次启动应用程序时注册APN – [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 设备令牌几乎立即收到。 令牌已经发送给提供商,并且我正在接收通知。 警报和声音的作品。 但徽章没有自动的效果,直到我启动应用程序,并手动更改。 请帮忙。

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, […]

APNS + PHP“stream_socket_client():未能启用encryption”

我在使用APNS和PHP时遇到了问题,并得到以下消息: stream_socket_client(): Failed to enable crypto 这个问题有时只会发生,而其他时候则会发生推动。 由于我有一个循环的10次迭代的testing脚本,我有时会得到这个: stream_socket_client(): SSL: Connection reset by peer 我正在使用沙盒服务器tls://gateway.sandbox.push.apple.com:2195 这是我试过的: 我试图重新发布PEM和所有证书。 我玩弄了请求协议sslv3://和tls:// 。 我玩了密码(push没有密码btw) 我试图寻找一个解决scheme的计算器,没有任何工作。 检查pem文件的权限644 检查pem父目录权限755 看来,我在Google和SO上find的所有解决scheme都是有问题的人。 我觉得这个服务可能是限速吗? 因为我们等了一会儿(大约15分钟),然后再试了一遍,并能够成功推送100条消息,直到我再次开始收到这条消息。

当应用程序被删除,然后重新安装时,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,我是否会想方设法让他们运行开发版本,而不是分发版本? 还是我的假设是关于工作的方式? (引用此帖和本文 )