【问题标题】:Set NSUserDefault When app is canceled or inactive当应用程序被取消或不活动时设置 NSUserDefault
【发布时间】:2016-06-28 13:40:22
【问题描述】:

当我的应用程序关闭或取消时,我会收到推送通知。发生这种情况时有没有办法设置 nsuserdefault ?我知道如果用户点击通知或从通知中打开应用程序,您可以检查应用程序是否处于非活动状态或已取消,但如果他们没有从通知中打开应用程序而是通过单击图标启动应用程序怎么办?

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

我知道这个方法被调用了,但是如果应用程序被终止或取消,我似乎无法保存到 nsuserdefaults。

【问题讨论】:

  • 远程服务器@Avi
  • 至少,您应该在有效负载中使用content-available: 1 并使用正确的委托方法来处理它们。那么你必须接受后台唤醒不可靠的事实。

标签: ios objective-c xcode apple-push-notifications nsuserdefaults


【解决方案1】:

如果应用已关闭或处于非活动状态,而用户通过图标打开应用, 如果有任何通知可用,您将在“didFinishLaunchingWithOptions”方法中收到远程通知,如果需要,您可以在那里设置用户默认值。 这是在“didFinishLaunchingWithOptions”中获取远程通知的代码

 (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


if (launchOptions) { //launchOptions is not nil
    NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];

    if (apsInfo) { //apsInfo is not nil
        [self performSelector:@selector(postNotificationToPresentPushMessagesVC) 
                   withObject:nil
                   afterDelay:1];
    }
}
return YES;
}

如需更多帮助,请访问此link@staticVoidMan 已经回答得很好。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2012-12-08
    • 2011-04-22
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多