2

特定のタスクについてユーザーに思い出させるアプリを作成しています。ユーザーは、次の基準に基づいてリマインダーの受信を選択できます。

1 回、毎日、毎週、毎週(特定の曜日)、2 週間ごと、月に 1 回

リマインダーは、アプリ内のカスタム ポップアップおよび/またはアプリケーションが閉じている場合のポップアップである必要があります。私の質問は、このようなリマインダーを設定する最善の方法は何ですか?

私が考えている方法は、それを電話の SQLite データベースにロードし、アプリが起動するたびにリマインダーをチェックすることです。リマインダーが毎日のリマインダーの場合、アプリは次のリマインダーを自動的に設定します. 残りをどうするかはまだわかりません。

ありがとう

4

2 に答える 2

5

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
}
于 2013-07-15T08:00:35.347 に答える
0

アプリケーションの状態をセットアップしNSLocalNotificationて処理できます。アプリ内にいるときはカスタム ビューをプッシュでき、アプリの外にいるときは標準アラートを受け取ります。

于 2013-07-15T07:40:19.733 に答える