iOS“本地”推送通知[关闭]

Posted

技术标签:

【中文标题】iOS“本地”推送通知[关闭]【英文标题】:iOS "Local" Push Notification [closed] 【发布时间】:2013-06-27 09:07:48 【问题描述】:

我正在寻找一种制作“本地”推送通知的方法。我不知道该怎么做,所以我正在寻求帮助。我需要的是:

一种为 24 小时内未打开应用程序的用户发送通知的方法。 (或者一个 int 没有改变)

我真的希望你们有时间帮助我,谢谢!

【问题讨论】:

我注意到在为您输入标签时 ui-local-notification 是一个列出的标签。这让我怀疑你在来这里之前是否曾试图找到解决问题的方法。 【参考方案1】:

这很简单:

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

【讨论】:

谢谢,帮了大忙! 我有一个简单的问题:- 如果我现在想检查它是否正常工作,如何制作一个在 30 或 10 秒内发送此通知的版本? 只需将60*60*24 更改为30(这是now 的秒数)【参考方案2】:

您可以为此使用UILocalNotification。

并实现您的 UIApplication applicationWillTerminateapplicationDidEnterBackground 代表,例如:

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

当您进入您的应用时,您需要取消此通知。所以实现applicationDidBecomeActivelike;

- (void)applicationDidBecomeActive:(UIApplication *)application

   [[UIApplication sharedApplication] cancelAllLocalNotifications];

【讨论】:

【参考方案3】:

UILocalNotification 将满足您的要求Apple doc

【讨论】:

请评论否决?也许我可以改进答案

以上是关于iOS“本地”推送通知[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在关闭电池优化的情况下使用本地通知 - 电池优化会避免推送通知

在 iOS 级别本地更改远程推送通知的声音

ios - 应用程序关闭时本地通知不更新徽章编号

iOS开发 - ANPs推送通知 标签: 推送通知ANPs远程推送本地推送

iOS(本地通知与远程通知)

IOS-推送通知