在方法的文档中 application:didReceiveRemoteNotification:fetchCompletionHandler: 说过 使用此方法处理传入的应用程序的远程通知。 与应用程序不同的是:didReceiveRemoteNotification:只在应用程序在前台运行时调用,方法是当您的应用程序在前台或后台运行时调用此方法。 另外,如果启用了远程通知后台模式,系统将启动您的应用程序(或将其从暂停状态唤醒),并在推送通知到达时将其置于后台状态。 我在.plist中设置了“后台提取”和“远程通知”选项,在scheme设置中设置了“由于后台提取事件启动”选项。 如果我的应用程序运行前景,并接受推,这个方法调用,似乎都好。 但是,当我从xCode运行我的应用程序,然后将其移动到后台模式(通过按主页button),它不会在上面的方法发送推送时在断点或NSLogs上作出反应。 系统显示推送通知,但推送到达时仍不能执行一些操作。 当应用程序运行后台时是否可以处理推送通知?
如您所知,我将Signingdebuggingconfiguration文件设置为Adhocconfiguration文件。 如果我运行我的应用程序到我的iPhone,所以我可以使用我的iPhone接收我的后台的远程推送通知(我的后台使用分布configuration文件,所以我必须使用adhoc或分布configuration文件)。 但每次运行应用程序(使用Adhocconfiguration文件)到我的iPhone,它将断开连接: 无法启动“项目名称” 进程启动失败:无法获得进程xxx的任务 所以,我不能debugging我的应用程序(使用Adhocconfiguration文件)与真正的设备在我的Xcode,有没有办法做到这一点? 我的要求是去一个特殊的vc ,我didFinishLaunchingWithOptions方法中的代码如下: // If application is launched due to notification,present another view controller. UILocalNotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if (notification) { [SVProgressHUD showSuccessWithStatus:[NSString stringWithFormat:@"success"]]; PushDetailViewController *detail_push = [[PushDetailViewController alloc] init]; detail_push.isPresentCome = YES; PushModel *new_model = [PushModel initPushModelWithDic:notification.userInfo]; if (new_model) { detail_push.pushModel = new_model; [self.window.rootViewController presentViewController:detail_push animated:NO completion:nil]; } […]
我正在尝试使用Apple的推送通知。 我在这里使用这个教程: http : //www.ibm.com/developerworks/java/library/mo-ios-push/#ibm-pcon 我正在尝试创build推送通知。 示例代码在这里: http : //code.google.com/p/javapns/wiki/PushNotificationBasic ,看起来像这样: import javapns.Push; public class PushTest { public static void main(String[] args) { Push.alert("Hello World!", "keystore.p12", "keystore_password", false, "Your token"); } } 除了keystore.p12部分,我已经设置了一切。 以下是关于密钥库的文档: 对象密钥库:对密钥库文件的引用,或者实际的密钥库内容。 请参阅准备证书以获取有关如何创build密钥库的更多信息。 您可以将以下对象传递给此参数: java.io.File:指向您的密钥库文件的直接指针 java.lang.String:本地密钥库文件的path java.io.InputStream:一个提供密钥库字节的stream byte []:密钥库的实际字节数 java.security.KeyStore:一个实际加载的密钥库 我不只是想在我的电脑上input密钥库的path(就像他们在这里使用Java-PNS发送推送通知到iPhone时发生错误一样),因为我觉得这是不安全的。 我应该使用哪个对象? 我的倾向说使用java.security.KeyStore。 最后需要注意的是,这段代码需要托pipe在Amazon Web Service的Elastic Beanstalk上(如果有的话)。 ———编辑1 ———— 我试图把理查德J.罗斯三世的代码。 但是在可以学习我的.p12文件设置是否正确之前,我首先需要解决有关JavaPNS(和我相信的文件结构)的问题。 运行下面的代码给了我这个错误: […]
如果我禁用应用程序的通知,我不会同步,应用程序运行良好。 如果它们被启用,并且代码注意并尝试同步 – 则会崩溃。 应用程序一直工作100%罚款周没有代码的变化。 想知道是否在相同的testing设备上的相同的构buildscheme之间切换是在放置东西。 工作正常,从Xcode到设备运行相同的,非debugging/生产,scheme。 但通过官方存档构build的Testflight应用程序安装它崩溃。 很奇怪。 任何见解? Thread : Fatal Exception: NSInvalidArgumentException 0 CoreFoundation 0x000000018714659c __exceptionPreprocess + 132 1 libobjc.A.dylib 0x00000001978980e4 objc_exception_throw + 60 2 CoreFoundation 0x00000001870311f8 -[__NSDictionaryM setObject:forKey:] + 972 3 0x0000000100522580 -[SBLocalStorage updateWithRegistrationName:registration:] (SBLocalStorage.m:89) 4 0x00000001005223fc -[SBLocalStorage updateWithRegistration:] (SBLocalStorage.m:59) 5 0x000000010051ceb4 __72-[SBNotificationHub retrieveAllRegistrationsWithDeviceToken:completion:]_block_invoke (SBNotificationHub.m:314) 6 0x000000010051b31c -[SBURLConnection connectionDidFinishLoading:] (SBURLConnection.m:115) 7 […]
如何实施基于地理位置的推送通知? 但我的解决scheme是如何在iOS上使用基于地理位置的推送通知? 在上面的链接给予本地通知 UILocalNotification *localNotification = [[UILocalNotification alloc] init]; localNotification.alertBody = locationData; localNotification.alertAction = @"Location data received"; localNotification.hasAction = YES; [[UIApplication sharedApplication] presentLocalNotificationNow:localNotification]; 但是如何实现地理位置 例如:用户进入某个区域,然后通知要通过apns释放
如果向用户显示推送通知,并且用户点击它并且应用从后台状态进入前台,那么应用如何获得通知的有效载荷 ? 由于该应用程序已在运行didFinishLaunchingWithOptions :将不会被调用,并且因为该应用程序在推送到达时didReceiveRemoteNotification :将不会被调用。
我正在开始一个报摊应用程序,首先我要testing所有的框架,看看谁的一切正常。 我已经在前台下载了通知触发的问题。 但我不知道如何在后台下载,或者至less我失去了一些东西…这是我添加到plist的东西: 该应用程序的目标是IOS 5 …这是我的代码…当然,我也实现了NKAsset的三种URLConection方法NKAssetDownload – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if ([launchOptions objectForKey:UIApplicationLaunchOptionsNewsstandDownloadsKey] || [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) { NKLibrary *nkLib = [NKLibrary sharedLibrary]; for(NKAssetDownload *asset in [nkLib downloadingAssets]) { [asset downloadWithDelegate:self]; } }else{ [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeNewsstandContentAvailability )]; } [[NSUserDefaults standardUserDefaults]setBool: YES forKey:@"NKDontThrottleNewsstandContentNotifications"]; [[NSUserDefaults standardUserDefaults] synchronize]; return YES; } […]
我不小心将Installation表放在parse.com数据浏览器中。 该表包含我的iOS用户的设备数据。 由于设备ID缺失 ,我无法向用户发送任何推送通知 。 我知道重新创build安装行的唯一方法是删除并重新安装应用程序 。 但这是不可取的,因为它完全打破了用户体验。 有没有办法从目标C代码重新创build安装表的行? 或者无论如何访问installationID和deviceToken,在这种情况下,我会重新创build表每手。
我正在为iOS开发消息应用程序。 我保留用户的电话号码到服务器,但我不保留在后端的联系人名称。 当用户收到来自服务器的推送通知时,服务器通过通知载荷向用户发送电话号码和消息内容。 我实现了application:didReceiveRemoteNotification:fetchCompletionHandler方法来显示本地通知。 我查找phoneContactName:phoneNumber对的本地数据库,并以格式显示本地通知:%phoneContactName%:%messageContent% 但是,障碍是,我现在不应该如何执行这个代码,当应用程序不运行。 我试图执行应用程序:didFinishLaunchingWithOptions并在那里检查 NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 但是这个代码没有被调用。 所以为了解决这个问题,我想问你我应该使用什么架构模型。 我应该在服务器端保持联系人姓名从服务器端发送notification.alert与联系人的名称(到目前为止,我的服务器不知道联系人的电话号码的名称),或有任何方式来执行代码时,应用程序没有运行? PS另外,当收到通知时,我计算客户端的徽章号码。 所以,如果可能的话,代码执行解决scheme将会更好。 谢谢
我有Xcodepipe理configuration文件(推荐“自动”设置) 我的应用程序ID已经包含推 当我启动Xcode时,它显示了带有复选标记的推送function,就好像一切都很好 当我注册设备令牌和推送消息,我得到 不是来自GCM的注册响应。 但是当我更新configuration文件 设置>configuration文件>查看详情>下载上述所有configuration文件 上述checkbox会变成红色警告标志。 这似乎是一个Xcode错误。 任何人都有解决方法?