Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS如何设置应用程序提醒_Ios_Schedule_Reminders - Fatal编程技术网

iOS如何设置应用程序提醒

iOS如何设置应用程序提醒,ios,schedule,reminders,Ios,Schedule,Reminders,我们正在创建一个提醒用户某些任务的应用程序。 用户可以根据以下基础选择接收提醒: 一次、每天、每周、每周(在特定的星期日)、每两周、每月一次 提醒应该是应用程序中的自定义弹出窗口和/或应用程序关闭时的弹出窗口。我的问题是,设置这些提醒的最佳方式是什么 我考虑的方法是将其加载到手机的SQLite数据库中,然后在每次应用启动时检查提醒,如果提醒是,比如说每天提醒,应用会自动设置下一个提醒。我还不知道接下来该怎么做 谢谢您可以设置一个NSLocalNotification并处理应用程序状态:当您在应用

我们正在创建一个提醒用户某些任务的应用程序。 用户可以根据以下基础选择接收提醒:

一次、每天、每周、每周(在特定的星期日)、每两周、每月一次

提醒应该是应用程序中的自定义弹出窗口和/或应用程序关闭时的弹出窗口。我的问题是,设置这些提醒的最佳方式是什么

我考虑的方法是将其加载到手机的SQLite数据库中,然后在每次应用启动时检查提醒,如果提醒是,比如说每天提醒,应用会自动设置下一个提醒。我还不知道接下来该怎么做


谢谢

您可以设置一个
NSLocalNotification
并处理应用程序状态:当您在应用程序内部时,您可以推送自定义视图,当您在应用程序外部时,您将收到标准警报。

我在应用程序中使用NSLocalNotification执行此操作

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
if (localNotification == nil)
    return;
localNotification.fireDate = dateToRemindOn;
localNotification.timeZone = [NSTimeZone defaultTimeZone];

// details
localNotification.alertBody = @"Alert Message";
// Set the button title
localNotification.alertAction = @"View";
localNotification.soundName = UILocalNotificationDefaultSoundName;

// custom data for the notification to use later
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:reminderID forKey:@"remindID"];
localNotification.userInfo = infoDict;

// Schedule notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
这将创建本地通知,您可以将可能需要的任何信息存储在用户信息字典中,并在收到或打开时提供给您

在AppDelegate中使用此方法检查应用是否从本地通知打开

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

    // Handle launching from a notification
    UILocalNotification *localNotification =
    [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotification) {
        //handle local notification
    }
}
并在应用程序委托中使用此方法捕获在应用程序打开时收到本地通知的时间

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {
    // Handle notification when app is running
}

谢谢,此通知是否会显示应用程序是否已完全关闭(甚至未暂停)?还是应用程序需要打开?如果用户按下通知上的按钮,我需要应用程序打开并在应用程序内运行特定方法。是的,如果应用程序关闭,他们将收到通知,如果他们在应用程序关闭时打开该通知,则您将在didFinishLaunching方法中检查该通知。如果在应用程序运行时收到通知,则将调用DidReceiveEmoteNotification方法,您可以根据需要处理它。