如何在 iOS 10 中安排本地通知(objective-c)[关闭]

2024-06-28

我想使用 iOS 10 安排本地通知。我想知道如何执行此操作。我查遍了网络,但我一直在寻找仅用于注册和处理通知的线索。不适用于本地通知的安排。

那么,有人知道该怎么做吗?


  1. 尝试一下。它已弃用但有效的代码。在 iOS 10.0 之前使用它:

    //Get all previous noti..
     NSLog(@"scheduled notifications: --%@----", [[UIApplication sharedApplication] scheduledLocalNotifications]);
    
     NSDate *now = [NSDate date];
     now = [now dateByAddingTimeInterval:60*60*24*7]; //7 for 7th day of the week.
     NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    
    [calendar setTimeZone:[NSTimeZone localTimeZone]];
     NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSTimeZoneCalendarUnit fromDate:now];
    
    
     NSDate *SetAlarmAt = [calendar dateFromComponents:components];
    
    
     UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    
     localNotification.fireDate = SetAlarmAt;
    
    
     NSLog(@"FIRE DATE --%@----",[SetAlarmAt description]);
    
     localNotification.alertBody =@"Alert";
    
     localNotification.alertAction = [NSString stringWithFormat:@"My test for Weekly alarm"];
    
     localNotification.userInfo = @{
                               @"alarmID":[NSString stringWithFormat:@"123"],
                               @"SOUND_TYPE":[NSString stringWithFormat:@"hello.mp3"]
                               };
    
      localNotification.repeatInterval=0; //[NSCalendar currentCalendar];
    
    
      [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    
    1. 对于 iOS 10.0 及更高版本:现在尝试使用 UserNotifications 框架:添加框架,然后像 #import 一样导入。在 Appdelegate Didfinishluanch 方法中。

      UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
          [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert)
                    completionHandler:^(BOOL granted, NSError * _Nullable error) {
                        if (!error) {
                            NSLog(@"request succeeded!");
                            [self testAlrt];
                        }
                    }];
      

在您的 ibaction 或方法中,编写并测试:

 NSDate *now = [NSDate date];

// NSLog(@"NSDate--before:%@",now);

now = [now dateByAddingTimeInterval:60*60*24*7];

NSLog(@"NSDate:%@",now);

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

[calendar setTimeZone:[NSTimeZone localTimeZone]];

NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSTimeZoneCalendarUnit fromDate:now];

NSDate *todaySehri = [calendar dateFromComponents:components]; //unused



UNMutableNotificationContent *objNotificationContent = [[UNMutableNotificationContent alloc] init];
objNotificationContent.title = [NSString localizedUserNotificationStringForKey:@"Notification!" arguments:nil];
objNotificationContent.body = [NSString localizedUserNotificationStringForKey:@"This is local notification message!"
                                                                    arguments:nil];
objNotificationContent.sound = [UNNotificationSound defaultSound];

/// 4. update application icon badge number
objNotificationContent.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);


UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:NO];


UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"ten"
                                                                      content:objNotificationContent trigger:trigger];
/// 3. schedule localNotification
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
    if (!error) {
        NSLog(@"Local Notification succeeded");
    }
    else {
        NSLog(@"Local Notification failed");
    }
}];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iOS 10 中安排本地通知(objective-c)[关闭] 的相关文章

  • 收到 NSInvalidArguementException 错误

    我想这可能与过度释放有关 它不断崩溃if managedObjectContext save error 就像每三次调用该方法一样 当我添加 3 个练习时 更新 我注意到当我往返于不同的例程实例时会发生这种情况 2011 04 28 04
  • 在 Objective-c 中获取对象名称

    假设我有一个 Foo 类和该类 myFoo 的一个实例 Foo myFoo 是否有任何方法 dispalyFooObjectName 可以显示对象的名称 例如 NSLog i was called from s myFoo dispalyF
  • NSZombieEnabled 完全隐藏 EXC_BAD_ACCESS 错误

    因此 我有一个 UIView 的子类 当我经历一组特定的条件时 在 iPad 而不是 iPhone 或模拟器上运行 仅首次登录 它开始导致 EXC BAD ACCESS 错误 当 UIView 子类从池中自动释放时 即池正在释放 而不是当我
  • iOS:无法从 Swift 建立 RabbitMQ 连接

    我正在尝试从 Swift 连接 RabbitMQ 我已关注this https github com rabbitmq rabbitmq objc client 图书馆 创建 Pod 设置并进入工作区 已检查并核实 成功运行 viewDid
  • WGS84 iOS 上外部 GPS 数据的大地水准面高度高度偏移

    对于我正在编写的应用程序 我们将 IOS 设备与外部传感器连接起来 该传感器通过本地 WiFi 网络输出 GPS 数据 该数据以相对于海拔高度的 原始 格式出现 一般来说 所有 GPS 高度都需要应用与基于当前位置的 WGS84 大地水准面
  • 向 UIImageView 添加反射的最有效方法是什么

    我只想要最简单的方法在易于管理的 UIImageView 下进行反射 只需使用iPhone SDK 库中的示例代码 http developer apple com library ios samplecode Reflection Int
  • 以编程方式使后退按钮转到上一个视图

    我有一个 UIBarButtonItem 并且想以编程方式设置转到前一个控制器的操作 在我的例子中 我之前的视图是 UITableViewController 下面是我当前用来制作栏按钮项目的代码 尽管该按钮尚未转到上一个视图 UIBarB
  • Objective C - CAGradientLayer 覆盖 UILabel 中的文本?

    我正在尝试添加一个渐变层到我的UILabel由于某些原因CAGradientLayer覆盖我的文字 我做错了什么吗 void viewDidLoad super viewDidLoad CAGradientLayer gradient CA
  • NSManagedObject 托管对象之外的子类作为普通对象

    我有一个实体对象 Country 其中包含国家 地区名称和国家 地区代码 它是 NSManagedObject 的子类 我将它与核心数据模型一起使用 将其值存储到持久存储中 我有一个地方 相同的国家 地区对象将用作普通对象 即我将使用它来存
  • 图像持久化和延迟加载与 Dispatch_Async 的冲突

    我正在开发一个提要阅读器 我通过使用 nsxmlparser 解析 rss 提要来完成它 我还有从 CDATA 块中获取的缩略图对象 void parser NSXMLParser parser foundCDATA NSData CDAT
  • iOS9 按需访问和下载资源

    我正在尝试实现新的 iOS9 功能应用程序细化 我了解如何在 Xcode 7 中标记图像并启用按需资源 但我不明白如何在我的应用程序中实现 NSBundleResourceRequest 有人可以帮助我 我将不胜感激 大部分信息都可以在 A
  • 编译到模拟器时如何排除 Xcode 中的框架

    我在我的项目中包含了 TokBox 框架 这样我们就可以进行视频短信 问题是该框架以及它们所需的其他一些框架不允许您在模拟器中编译或运行该应用程序 他们不受支持 有没有办法设置编译器标志以在编译到模拟器时跳过 TokBox 和其他框架 原因
  • 带选项卡的 NSAttributedString

    你如何创建一个UILabel用这种文本格式 你会使用 NSAttributedString 吗 NSAttributedString 可以创建带有制表位的文本列 这与在文字处理程序中的完成方式类似 具有相同的限制 let text Name
  • iPhone 上的 COMET(服务器推送到客户端)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻求从我的服务器到我的 iPhone 应用程序建立某种套接字 COMET 类型的功能 本质上 任何时候用户设法在服务器上设置任意
  • 无需在线即可从 XMPP 获取离线消息

    我们的移动聊天应用程序使用 ejabberd 服务器 我们正在为我们的 IOS 应用程序使用 IOS XMPP Framework https github com robbiehanson XMPPFramework https gith
  • 在 UITextView 内画一条线 - NSAttributedString

    我想在里面画一条可定制的线UITextView由一些文本组成 使用NSAttributedString 这是我尝试过的 NSString unicodeStr NSString stringWithFormat C C C 0x00A0 0
  • UIModalTransitionStyleFlipHorizo​​ntal 横向垂直翻转

    在横向模式下 从一个视图 导航控制器堆栈的一部分 转换到另一个视图作为模态视图 并将 UIModalTransitionStyleFlipHorizo ntal 设置为 modalTransitionStyle 视图在横向模式下垂直翻转 动
  • NSWindow 中的 NSScrollView

    我在 NSWindow 中有一个 NSScrollView 但它似乎被禁用了 它looks就像它会工作一样 但是滚动条是反应迟钝到鼠标或滚轮 当我将完全相同的 NSScrollView 放入新 XCode 项目的窗口中时 它工作得非常完美
  • XCode 5 在 AppStore 验证中崩溃

    我是 iOS 开发新手 很可能错过了一些相关的东西 我有一个在 Xcode 中开发的应用程序 并使用开发设备进行了测试 以便我知道它运行正常 我已在 iTunes Connect 中创建了记录 并完成了启用 等待上传 状态的步骤 在构建设置
  • 解析 Apple Mach O-Linker 错误?

    我正在使用解析框架 突然出现 39 个错误 即使我删除框架 它仍然有错误 我已经检查了构建阶段 设置和路径 但没有任何效果 另外 我正在使用 xcode 4 6 3 我有一台过时的 macbook Ld Users anikakablan

随机推荐

  • 从业务逻辑类重定向 asp.net mvc 页面

    我在业务逻辑层中调用一个静态方法 出于我在这里不会提及的目的 该方法需要自行进行重定向 而不是将信息返回到控制器以进行重定向 我认为我需要使用 HttpContext 对象 但正在努力创建路由 我不能简单地执行 context Respon
  • 如何在 Tooltipster 工具提示中显示来自 jQuery Validate 插件的消息?

    我想使用工具提示插件 http calebjacob com tooltipster 显示由jQuery 验证插件 http docs jquery com Plugins Validation jQuery 验证插件 document r
  • 导出资源后偶尔出现空白帧 - AVExportSession

    这个问题有几个答案 但是我的情况有点不同 没有一个答案可以解决我的问题 客观的 我正在尝试添加一个慢动作ramp None
  • ON DELETE CASCADE 与 Symfony 和 Doctrine 的多对多关系

    我想要与 Symfony 和 Doctrine 建立简单的多对多关系 这实际上是一个单向的一对多关联 可以通过连接表映射为文档表明 http doctrine orm readthedocs org en latest reference
  • 添加适用于 Android 的 Google Cloud Messaging (FCM) - 注册流程

    几个星期以来 我一直在为 GCM 的实现而苦苦挣扎 但我真正想了解它是如何工作的 所以我决定采取 小步骤 首先 正如提到的here https developers google com cloud messaging registrati
  • 如何在php中显示curl的二进制数据

    我正在编写简单的 php 代理 但在显示 png 文件时遇到问题 输出是 它应该是 图像在 Notepad 中打开 我的 php 卷曲代码如下所示 ua Mozilla 5 0 Windows U Windows NT 5 1 en US
  • 表格的 元素中是否允许使用 ng-model?

    表格元素内是否允许使用 ng model 如果我更改特定列 即视图 角度会自动更新模型吗 如果您要使用 HTML 直接编辑表格单元格contenteditable属性 ng model 不会自动工作 因为默认情况下它仅适用于表单元素 有可能
  • C# 结构体中的引用类型

    我正在查看 C 中的类型值 并了解到它们不会像普通引用类型那样在堆上分配 如何分配具有引用类型的结构 e g struct simple public Employee e public bool topEmployee public vo
  • 在 Visual Studio 安装项目中安装后如何启动应用程序

    我已经使用 Visual Studio 2008 创建了一个安装项目 应用程序安装完成后 我希望它立即启动 关于如何做到这一点有什么想法吗 我使用脚本在 MSI 的最终形式上放置了 启动 ProductName 复选框 不过 我不能对剧本有
  • Hibernate注解

    我们应该在基于 Hibernate 的应用程序中使用 org hibernate annotations Entity 而不是 javax persistence Entity 吗 或者说没有这样的规则 org hibernate anno
  • 为 Android 离线(手动)安装 Intel x86 Atom 系统映像

    我想安装 Intel x86 Atom 系统映像 因为我的模拟器速度太慢 每次我尝试从 Android sdk 管理器安装它时 我都无法收到此消息 正在获取网址 https dl ssl google com android reposit
  • 如何可视化包含/指向彼此的 C 结构图?

    我正在使用Ubuntu 10 04 正在研究内核对象的编程 我遇到了一些相当复杂的结构 我很难阅读 所以我想我应该尝试找到一些可以帮助我可视化它们的工具 到目前为止我唯一能找到的是VCG http rw4 cs uni sb de sand
  • 在 Resharper 分析中忽略设计器和生成的文件

    我已经使用 Resharper 几天了 我真的很喜欢这个工具 但是有一件事让我很恼火 我想知道它是否可以改变 我从生成的代码中收到大量问题通知 我的项目中几乎有 1400 个 我想将这些文件设置为忽略 这样它们就不会像使用 StyleCop
  • 如何判断CoInitialize被调用了多少层?

    我正在对一个混乱的项目进行一些调试 之前的开发人员不知道他们在做什么 主要问题是尝试多线程应用程序失败 我现在正在清理混乱并试图找出问题出在哪里 问题之一是调用不一致CoInitialize为了使用ADO组件 继续我的上一个问题 https
  • 在 Android 应用程序中使用 GPS

    我目前正在研究在 Android 应用程序中使用 GPS 在 android 文档中我看到了以下行 LocationProvider locationProvider LocationManager NETWORK PROVIDER Or
  • ASP.net 角色和项目

    EDIT 重写了我原来的问题以提供更多信息 背景信息在我的工作中 我正在为客户开发 ASP Net Web 应用程序 在我们的实现中 我们使用诸如带有 MembershipProviders 和 RoleProviders 的表单身份验证之
  • ORA-12514: TNS: 侦听器当前不知道连接描述符中请求的服务

    我在尝试通过侦听器连接到 Oracle Database XE 时遇到问题 sqlplus system my password XE 我收到以下错误 ORA 12514 TNS listener does not currently kn
  • t-sql计算文本列中的唯一单词

    我有一列包含图像标题 我想做的是找到该栏中出现的最流行的单词 有没有办法用 t sql 来做到这一点 我认为你可以做这样的事情 我认为这不是最优化的 但您可以对其进行改进 创建一个表变量 t来存储单词 创建一个游标 循环浏览字幕表中的每一行
  • 将 WindowState 设置为最大化会导致窗口过早出现

    我读到Load事件应该在创建窗口句柄后触发 但是before窗口实际上变得可见 在大多数情况下 这似乎是正确的 但是 我发现当我使用以下命令创建表单时WindowState属性设置为FormWindowState Maximized 通过
  • 如何在 iOS 10 中安排本地通知(objective-c)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想使用 iOS 10 安排本地通知 我想知道如何执行此操作 我查遍了网络 但我一直在寻找仅用于注册和处理通知的线索 不适用于本地通知