从iphone的本地通知中打开相机

时间:2013-07-23 12:22:35

标签: ios uilocalnotification

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

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

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

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分: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。从那里你可以读出userInfo:

- (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];
}