Tag: 苹果推通知

iOS推送通知不能用于分发

我已经尝试推送通知我的应用程序的开发,它工作正常。 当我生成生产(发行)的.p12文件时,它正在创build。 在服务器上部署.pem文件之后,它会抛出错误。 OpenSSL :: SSL :: SSLError(SSL_connect返回= 1 errno = 0状态= SSLv3读服务器操作票A:sslv3警报证书未知):“} 服务器:RoR(Ruby on Rails)任何帮助都是非常可观的。 注意: 对于开发.p12它工作正常。 问题是当我部署分布.p12。 请build议我可能错过了什么。 感谢致敬

iPhone设备标记的大小

苹果推送通知(Apple Push Notification)生成的设备令牌的大小是多less? 我正在尝试将服务器端的设备令牌存储在mysql数据库中,并想知道所生成设备令牌的最大大小

在应用程序未运行时处理推送通知(应用程序被终止)

我的问题似乎是这个重复,但它不是。 当应用程序被杀害,并没有在后台运行,如果我收到推送通知,并点击通知横幅,它工作正常。 “userInfo”不是空的,应用程序处理通知。 但是,如果我closures通知横幅,并通过点击应用程序图标打开应用程序,这个“userInfo”返回零。 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions { NSDictionary* userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if(userInfo != nil){ //Handling notification } } 并且 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{ if([application applicationState] == UIApplicationStateActive) { NSLog(@"…1"); }else if([application applicationState] == UIApplicationStateInactive){ NSLog(@"…2"); }else if([application applicationState] == UIApplicationStateBackground){ NSLog(@"…2"); } completionHandler(UIBackgroundFetchResultNoData); } 有没有办法处理这些通知,或者我应该自己处理?

使用推送通知在指定页面打开应用程序

我正在寻找一种方法来打开pushnotification所指向的页面上的应用程序。 有什么方法可以查看启动我的应用程序时是否收到推送通知? 提前致谢

如何testingApple推送通知反馈服务?

我做的一个testing是: 我做了一个示例应用程序,我启用了推送通知并实现了处理它们的机制。 我正在testing发送无声的推送通知到我的应用程序curl ,这工作得很好。 我正在testing: curl -v -d'{“aps”:{“content-available”:1}}'–cert“/Users/me/Desktop/mycert.pem”:“”-H“apns-topic:com.domain .name“–http2 https://api.development.push.apple.com/3/device/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 作为苹果的回答,我总是看到以下内容: <HTTP / 2.0 200 <apns-id:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 根据官方文档的Table 6-4 ,这是正确的,正如所料: https : //developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html 现在我从我的设备中删除应用程序,然后重试相同的请求,希望能够开始获取状态码410和信息: The device token is no longer active for the topic 。 如何,这不会发生,我总是得到200状态代码就像一切正常,并推动令牌仍然可用。 删除后的1 – 1.5小时,我仍然得到200作为答案。 你也许知道苹果刷新令牌清单的频率有多高?我什么时候能期望最终开始获得410 ? 而且 – 在testing生产环境之外的应用程序时,可以testing410状态(通常是Instant Feedback )吗? 预先感谢任何一种答案。 干杯

如何检测用户卸载的iOS应用程序? 我需要推动严重的通知。 我不想失去它

我知道苹果不会让你知道用户卸载你的应用程序。 我的问题 我有一个旧的传统SMS系统发送警报短信给最终用户。 这些消息大多是严重的。 瓶颈是GSM模块同时发送数百个短信用户的限制。 延迟是不可避免的。 因此,我build立一个新的警报系统,发送推送通知给我的用户,如果他们安装我的应用程序。 在注册了他们的电话号码后,他们的SMS警报将被切换到新的警报系统。 问题是一些老派用户更喜欢短信而不是推送通知。 他们下载应用程序,并注册他们的电话号码。 然后,他们发现他们的手机没有3G数据计划。 他们删除了该应用程序,而没有取消注册其电话号码。 我的新系统不知道谁删除了应用程序,而没有注册电话号码。 所有严重的警报消息仍然继续发送到他们的手机不存在的应用程序。 我的问题 有没有什么聪明的想法或机制可以检测到用户删除了我的应用程序?

自定义推送通知的iOS权限对话框

当iOS应用首次尝试注册推送通知时,系统会popup一个权限对话框,询问用户是否有权接收推送通知。 是否可以自定义此对话框的文本,解释为什么这些权限正在寻求?

当应用程序未打开时收到推送通知时更新徽章号码

我有一个应用程序,在这个应用程序中,我面对的问题是,只有当我打开通知时,徽章号码才会更新,但即使应用程序未打开,我也需要更新徽章号码。 任何人都可以帮助我?

在iOS中推送通知开启或closures检查

我想检查iOS设备中的“推送通知选项”,只要应用程序正在运行(或从恢复模式开启)。 我使用下面的代码来检查,如果选项是closures的: -(void)PushNotificationServiceChecking { UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; if (types == UIRemoteNotificationTypeNone) { NSString *msg = @"Please press ON to enable Push Notification"; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Push Notification Service Disable" message:msg delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"ON", nil]; alert.tag = 2; [alert show]; } } 然后,我使用下面的代码去“设置”选项卡>>通知中心,以便用户可以手动: – (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (alertView.tag == […]

苹果推送通知不适用于分发,而是用于开发

我在我的应用程序中实施推送通知,在开发部分工作正常,我收到推送通知。 当我决定在应用程序商店发布它时,我实现了它的分发(我使用证书和configuration文件进行分发),我做了相同的步骤,并通过应用程序将.p12文件转换为.pem, certificate.pem和key.pem到另一个文件ck.pem。 在PHP文件中,我做了以下操作: $passphrase = 'The passphrase I put it in the shall'; $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); // Open a connection to the APNS server $fp = stream_socket_client( 'ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); 我已经改变了沙箱到SSL://gateway.push.apple.com:2195在我的PHP。 我用这个步骤创build了production.pem。 $ openssl x509 -in aps_developer_identity.cer -inform der -out PushChatCert.pem $ openssl […]