【发布时间】:2015-11-02 05:01:20
【问题描述】:
我有一个场景,应用程序将收到推送通知并需要在我的应用程序的主屏幕中显示该消息,为此我将消息数组保存到我的应用程序委托的用户默认值中,并且一切正常,但在以下情况下它不工作
如果应用程序处于终止状态并且收到通知并且用户通过应用程序图标触发应用程序(不是来自推送通知)
如果应用程序在后台并且收到通知并且用户通过应用程序图标(不是来自推送消息)进入应用程序,在这种情况下也是
然后我搜索了解决方案并开始了解静默推送通知(用于后台模式),因此我需要知道如何通过推送通知处理所有场景,而我的 appdelegete 是
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if (remoteNotif) {
[self handlePushMessage:remoteNotif];
}
return YES;
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[self handlePushMessage:userInfo];
}
-(void)handlePushMessage :(NSDictionary*)userInfo{
//method to handle push message
}
提前致谢
【问题讨论】:
-
如果您的应用程序被用户终止,那么如果用户从应用程序图标启动您的应用程序,则无法找到推送通知
-
我认为是这样,最好创建 Web 服务,让您响应迄今为止发送的所有消息。bcz 第一种情况无法处理,第二种情况可以通过静默通知处理。
-
感谢您的快速响应 :) 如果在用户第一次启动应用程序之前收到通知,那么会发生什么?
-
okei在静默通知的情况下是否有可能被应用商店拒绝
-
在您的用户首次启动您的应用程序之前,您无法接收远程通知,因为您尚未注册远程通知,并且您的服务器没有远程通知标识符来发送通知设备
标签: ios objective-c apple-push-notifications appdelegate