底部按钮和应用图标显示未读消息

2024-01-31 10:38

本文主要是介绍底部按钮和应用图标显示未读消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们要实现的效果如下:

 

我们使用系统自带的,实际上,代码量很少,在我们要显示的按钮上,打上下面一句代码即可:

1
self .tabBarItem.badgeValue = @ "1" ;

 同时设置图标和按钮的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
  *  获得未读数
  */
- ( void )setupUnreadCount
{
     //获取未读数具体方法
     //最终返回一个数字,如:
     int  count=10;
     
     // 设置提醒数字(微博的未读数)
     NSString  *status = [ NSString  stringWithFormat:@ "%d" , count];
     if  ([status isEqualToString:@ "0" ]) {  // 如果是0,得清空数字
         self .tabBarItem.badgeValue =  nil ;<br>      //应用图标显示
         [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
     else  // 非0情况
         self .tabBarItem.badgeValue = status;
         [UIApplication sharedApplication].applicationIconBadgeNumber = status.intValue;
     }
}

当然,设置的显示的这个数字,是应该会定时的变的。如何使这个方法定时的调用呢?

1
2
3
4
5
6
7
8
9
- ( void )viewDidLoad
{
     [ super  viewDidLoad];
     
     // 获得未读数
     NSTimer  *timer = [ NSTimer  scheduledTimerWithTimeInterval:60 target: self  selector: @selector (setupUnreadCount) userInfo: nil  repeats: YES ];
     // 主线程也会抽时间处理一下timer(不管主线程是否正在其他事件)
     [[ NSRunLoop  mainRunLoop] addTimer:timer forMode: NSRunLoopCommonModes ];
}

做完上面的操作后,我们是可以看到效果了。但还存在一个问题就是,我们的应用进入后台后,定时器不再工作,变成了一个暂时状态。那为什么一个音乐的应用可以一直在后台运行呢?实际上,在AppDelegate里面已经有后台运行的方法,我们在这个方法里做一些操作即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
  *  当app进入后台时调用
  */
- ( void )applicationDidEnterBackground:(UIApplication *)application
{
     /**
      *  app的状态
      *  1.死亡状态:没有打开app
      *  2.前台运行状态
      *  3.后台暂停状态:停止一切动画、定时器、多媒体、联网操作,很难再作其他操作
      *  4.后台运行状态
      */
     // 向操作系统申请后台运行的资格,能维持多久,是不确定的
     UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
         // 当申请的后台运行时间已经结束(过期),就会调用这个block
         
         // 赶紧结束任务
         [application endBackgroundTask:task];
     }];
     
     // 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay
     // 搞一个0kb的MP3文件,没有声音
     // 循环播放
     
     // 以前的后台模式只有3种
     // 保持网络连接
     // 多媒体应用
     // VOIP:网络电话
}

 在上面的代码里,我们看到,需要在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay,如图:

这篇关于底部按钮和应用图标显示未读消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663479

相关文章

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换