iOS本地通知 - 点击操作

时间:2015-03-16 01:11:58

标签: ios objective-c swift

所以我设法在我的应用中设置了本地通知。

NSDate *notifTime = [[NSDate date] dateByAddingTimeInterval:time];
UIApplication *app = [UIApplication sharedApplication];
UILocalNotification *notif = [[UILocalNotification alloc] init];

if (notif) {
    notif.fireDate = notifTime;
    notif.timeZone = [NSTimeZone defaultTimeZone];
    notif.repeatInterval = 0;
    notif.alertTitle = title;
    notif.alertBody = text;

    if (sound == nil) {

        NSLog(@"default sound");
    }

    else {

        NSLog(@"other sound");
        notif.soundName = sound;
    };


    [app scheduleLocalNotification:notif];
}

在名为

的方法内部
- (void)createDateNotification:(NSString*) title alertText: (NSString*)text timeToWait: (NSTimeInterval)time soundToPlay: (NSString*)sound;

当我调用该方法时,通知就像预期的那样运行。我的问题是,在我的游戏中我希望它是当用户点击本地通知它将运行一个方法,现在就是这样做

-(void)rewardUser {

NSLog(@"User rewarded")

}

但有时它可能会运行不同的方法,我不知道该怎么做。从快速到客观的任何事情都将受到赞赏。非常感谢!

2 个答案:

答案 0 :(得分:1)

覆盖- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification中的AppDelegate并做你的事。

答案 1 :(得分:0)

我设法解决了这个问题。创建警报时,我将操作设置为我的类中的公共字符串,称为action,并且提到@songchenwen,我重写了didReceiveLocalNotification以检查action是否等于多个变量如果是的话,为每个人运行一个方法。

我打电话给这样的方法设置一个动作字符串

 [self createReminderNotification:@"Give50Coins" messageTitle:@"t" messageBody:@"gfdhgsh" timeToWait:2 soundToPlay:@"audio.wav"];

在方法中,我初步设置了通知设置的所有细节。

NSDate *notifTime = [[NSDate date] dateByAddingTimeInterval:time];
UIApplication *app = [UIApplication sharedApplication];
UILocalNotification *notif = [[UILocalNotification alloc] init];

action = actionAfterNotifiy;

if (notif) {

    notif.fireDate = notifTime;
    notif.timeZone = [NSTimeZone defaultTimeZone];
    notif.repeatInterval = 0;
    notif.alertTitle = title;
    notif.alertBody = message;

    if (sound == nil) {

        NSLog(@"default sound");
    }

    else {

        NSLog(@"other sound");
    };

}

[app scheduleLocalNotification: notif];

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification

我这样做了,

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {

if ([action isEqualToString:@"Give50Coins"]) {

    NSLog(@"wheyy");
}
 else {
  //random stuff here
}
}