3

我正在开发一个应用程序,当通知出现时我必须打开相机,就像“如果可以睡”应用程序一样

https://itunes.apple.com/us/app/sleep-if-u-can-alarm-forces/id609598558?mt=8

如果它真的按照它所说的那样做,我无法分析该应用程序,因为它是付费应用程序。

我首先担心的是它是否适用于 iPhone,它适用于 android。如果可行,如何实现。

任何帮助,将不胜感激。

4

1 回答 1

1

在安排本地通知时,添加一些信息作为userInfo它的属性。像这样:

UILocalNotification *n = [UILocalNotification new];
n.alertBody = @"Some Alert Text. Take a picture!";
n.userInfo = [[NSDictionary alloc] initWithObjectsAndKeys:@YES, @"openCamera", nil];
n.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
[[UIApplication sharedApplication] scheduleLocalNotification:n];

如果您的应用程序仍在运行,当用户点击本地通知时,application: didReceiveLocalNotification:消息将发送到您的 AppDelegate。从那里你可以读出用户信息:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
    if ([[notification.userInfo objectForKey:@"openCamera"]  isEqual: @YES]) {
        // Do what is needed to open your camera
    }
}

如果您的应用程序没有运行,application: didFinishLaunchingWithOptions:将被调用。在此方法中,您可以从启动选项中读出通知并触发您定义的操作,如下所示:

UILocalNotification *n = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

if (n) {
    [self application:application didReceiveLocalNotification:n];
}
于 2013-08-31T12:36:16.250 回答