web-dev-qa-db-ja.com

iOSの「ローカル」プッシュ通知

ねえ

「ローカル」プッシュ通知を作成する方法を探しています。どうすればいいのかわからないので、助けを求めています。私が必要なのは:

  • 24時間以内にアプリケーションを開かなかったユーザーに通知を送信する方法。 (または、intは変更されていません)

皆さんの一人が私を助けてくれることを本当に願っています、ありがとう!

14

これは非常に簡単です。

1)アプリが閉じたら、24時間以内に起動するローカル通知をスケジュールします

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.fireDate = [[NSDate date] dateByAddingTimeInterval:60*60*24];
    notification.alertBody = @"24 hours passed since last visit :(";
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];
}

2)アプリが開かれている場合(ローカル通知が発生する前)、ローカル通知をキャンセルします

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
}
44
tilo

この目的のために ILocalNotification を使用できます。

そして、 IApplicationapplicationWillTerminateおよびapplicationDidEnterBackgroundデリゲートを次のように実装します。

- (void)applicationWillTerminate:(UIApplication *)application
{
   [self scheduleNotification];
}

 - (void)applicationDidEnterBackground:(UIApplication *)application
{
   [self scheduleNotification];
}

 - (void)scheduleNotification
{
   UILocalNotification *locNot = [[UILocalNotification alloc] init];
   locNot.fireDate             = [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24];
   [[UIApplication sharedApplication] scheduleLocalNotification: locNot];
}

アプリに入るときは、この通知をキャンセルする必要があります。したがって、applicationDidBecomeActiveを次のように実装します。

- (void)applicationDidBecomeActive:(UIApplication *)application
{
   [[UIApplication sharedApplication] cancelAllLocalNotifications];
}
2
Midhun MP

UILocalNotificationは要件に適合します Apple doc

1
Andrea