Tag: 苹果推通知

APNS错误响应包中不同状态代码的含义

使用增强的通知格式时,APNS在错误响应数据包中返回以下状态码。 0 – 没有遇到错误 1 – 处理错误 2 – 缺less设备标记 3 – 缺less话题 4 – 有效载荷丢失 5 – 令牌大小无效 6 – 主题大小无效 7 – 有效负载大小 8 – 无效的标记 255 – 无(不知道) 我想知道哪些状态代码实际上表明问题实际上是与设备令牌(即:我可以标记在我的数据库中的特定设备令牌无效或无效)。 我确信,当我收到一个值为8的状态码时,我可以安全地做到这一点。 另外,我非常确定,状态码2,4,5和7表示什么时候返回。 但对于其余的身份代码,我几乎是在黑暗中。 苹果的网站也没有包含太多关于他们的信息。 任何人都可以详细介绍一下这些状态码。 提前谢谢了。

如何生成在GCM for iOS中使用的有效APNS证书(.p12)?

我正在尝试iOS平台的Google Cloud Messaging示例应用程序。 https://developers.google.com/cloud-messaging/ios/start 生成GoogleServices-Info.plist需要APNS开发和生产证书(PKCS#12文件格式)。 我已经在MAC KeyChain Access中创build了.p12文件(绑定APNS dev证书和私钥)。 但是,上传.p12文件时,表示它的格式不正确(证书必须是有效的PKCS12文件)。

iOS推送通知设置 – 拒绝权限与永远不会请求的权限

是否有可能区分哪些情况 一个iOS用户明确拒绝了用户通知的权限,并且 一个iOS用户从来没有被提示要求权限? 我的情况:过去,我提示用户通知许可,但从来没有跟踪过请求。 稍后,我停止尝试注册任何通知设置。 现在,我想重新介绍用户通知。 在应用程序发生重大事件后,我的计划是显示某种用户界面,说明select用户通知的好处。 但是,如果用户已经拒绝,我宁愿显示一个单独的用户界面,可以把他们带到Settings.app。 目前,我正在使用-[UIApplication currentUserNotificationSettings]来获取当前的设置,但是看起来这UIUserNotificationTypeNone为上述两种情况返回UIUserNotificationTypeNone 。

build议如何将APN的设备令牌链接到注册用户(通过phonegap或UIWebView)

类似的问题在这里: jQueryMobile,Phonegap和设备令牌 – iOS 情况是,我有这个PhoneGap基于Web的应用程序,并且本地iOS帮助我在APN上注册设备,并且在我的服务器数据库中收到设备令牌。 问题1:如何使用PhoneGap将注册用户(通过UIWebView)关联到此设备令牌? 现在我想到的是编写自定义插件,并在用户注册期间传递设备令牌。 有没有更好的select? 问题2:由于device_token可以随时更改,我应该如何将这个用户重新链接到这个device_token? 也许每当用户login,我做一个window.plugins。 PluginName .getDeviceToken并同步它? {user_id:123, old_device_token: 'xxxx..', new_device_token: 'xxx…'} ? Fyi,这个应用程序是为一个事件而构build的,客户请求人们在这个移动应用程序上发送消息。 当他收到他的朋友发来的消息时,你如何向“John Doe”推送新消息通知 ? – 问题是如何将“John Doe”链接到特定的device_token? 这不能太iOS专用,因为这个应用程序也必须在Android上部署(C2DM)。 欢迎任何帮助! 编辑:可能的解决办法 不安的研究出现了这个可能的解决scheme: [Native]应用程序已启动 – 已启动APN注册,并收到device_token [Native]将此device_token存储到本地存储(CoreData / SqlLite或Property Lists?)中,并将其发送到服务器以执行device_token注册 [WebView]每当用户login或注册,这个device_token将通过PhoneGap查询,散列并发送到服务器进行login,比较和链接。 任何不可预见的情况都是有问题的? 编辑:答案 我有我的完整工作解决scheme张贴在答案。 看看这里: https : //stackoverflow.com/a/9628592/534862

确定应用程序是否正在与APNS沙箱或生产环境进行通信

我在我的应用程序中设置了推送通知。 我试图确定我在application:didRegisterForRemoteNotificationsWithDeviceToken:从APNS收到的设备令牌application:didRegisterForRemoteNotificationsWithDeviceToken:方法是否来自沙盒或开发环境。 如果我能区分哪个环境初始化令牌,我将能够告诉服务器哪个环境发送推送通知。 我试过使用DEBUGmacros来确定这一点,但我已经看到了一些奇怪的行为,不要相信它是100%正确的。 #ifdef DEBUG BOOL isProd = YES; #else BOOL isProd = NO; #endif 理想情况下,我可以在代码中检查aps-environment权利(价值是开发还是生产),但我不确定这是否可能。 什么是确定您的应用程序是否正在与APNS沙箱或生产环境进行通信的正确方法? 我假设服务器首先需要知道这一点。 如果这是假设是错误的,请纠正我。 编辑 :苹果公司的提供者与APNS沟通的文档详细说明了与沙盒和生产沟通的区别。 但是,文档不提供有关如何与注册令牌(从iOS客户端应用程序)和与服务器通信一致的信息。

批量推送Apple推送通知

我有一个应用程序,包括定期向〜1M用户发送Apple推送通知。 这样做的设置已经build立并testing了less量的通知。 由于我无法testing这种规模的发送方式,因此我很有兴趣知道发送批量推送通知是否有任何问题。 我有Python编写的脚本,打开到推送服务器的单个连接,并通过该连接发送所有通知。 苹果build议尽可能保持开放。 但是我也看到连接终止,你需要重新build立连接。 总而言之,成功发送不被承认是令人不安的,只有错误的发送被标记。 从程序员的angular度,而不是简单地检查一件事情“如果(成功)”,你现在需要注意许多可能出错的事情。 我的问题是:你需要警惕哪些典型的错误,以确保你的消息不会悄无声息地消失? 连接closures很容易。 有其他人吗?

使用Sinch的即时消息推送通知不在iOS上

[![在这里input图片描述] [1]] [1]我已经提到了所有的领域,但是我还没有得到推送通知。 这是我的代码: 首先在didFinishLaunchingWithOptions我称之为: self.push = Sinch.managedPushWithAPSEnvironment(.Production) self.push?.delegate = self self.push?.setDesiredPushTypeAutomatically() client = Sinch.clientWithApplicationKey("xxxxxx", applicationSecret: "xxxxxxx", environmentHost: "sandbox.sinch.com", userId: userID) client?.delegate = self client?.setSupportMessaging(true) client?.setSupportPushNotifications(true) client?.enableManagedPushNotifications() client?.start() client?.startListeningOnActiveConnection() self.push?.registerUserNotificationSettings() func managedPush(managedPush: SINManagedPush!, didReceiveIncomingPushWithPayload payload: [NSObject : AnyObject]!, forType pushType: String!) { self.client?.relayRemotePushNotification(payload) } func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { let tokenChars = UnsafePointer<CChar>(deviceToken.bytes) […]

APNS Openssl从苹果推送通知从PHP连接?

最后,我已经从我的本地服务器发送通知给我的设备。 我遵循这个教程http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2 ,许多堆栈溢出的人帮助我达到此目的。 我感谢你们所有的朋友。 我有一个怀疑的服务器设置。 对于我的本地使用,我已经使用MAMP for Apache and MySQL servers 。 最后i open the ssl from Terminal used certificate.pem and key.pem 。 有没有什么办法open ssl from php script 。 但是,我不知道任何单一的PHP脚本,因为我是ios开发人员。 非常遗憾。 昨天我在terminal上用下面的命令打开ssl并连接到APNS, unknownc42c032e8297:~ gopi$ /Applications/MAMP/bin/php/php5.3.6/bin/php /Users/gopi/Desktop/PushChatServer/push/push.php development unknownc42c032e8297:~ gopi$ cd /Users/gopi/Desktop/PushChatServer/push unknownc42c032e8297:push gopi$ telnet gateway.sandbox.push.apple.com 2195 Trying 17.149.34.66… Connected to gateway.sandbox.push-apple.com.akadns.net. Escape character is '^]'. […]

缺less推送通知权利

提交二进制文件后,我收到了来自Apple的警告邮件。 Missing Push Notification Entitlement – Your app appears to include API used to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, […]

如何清除徽章号码,同时保留通知中心

我使用[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]清除徽章编号。 它工作正常,但同时删除远程通知。 还有很多其他问题可以清除通知中心,但我不想清除它们。 我只想清除一些徽章,同时保留通知。 有没有办法做到这一点?