zoukankan      html  css  js  c++  java
  • 如何在应用图标上显示未读消息

    在开发应用时,我们接收消息,往往会看到 App 有通知时就会在应用图标上显示未读消息+1.如何实现呢?其实非常简单,就几行代码

    这个是设置应用图标上显示未读消息+1

    // 设置提醒数字(App的未读数)
        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;
        }

    但是这个是实时改变的,那么我们就需要一个定时器来给他循环引用

    - (void)viewDidLoad
    {
        [super viewDidLoad];
         //多长时间来走一次下面的方法
        CGFloat dur = 10;
        // 获得未读数
        NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval: dur target:self selector:@selector(调用的方法) userInfo:nil repeats:YES];
        // 主线程也会抽时间处理一下timer(不管主线程是否正在其他事件)
        [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
    
    }

    这样就可以,但是还有问题,要是我们的 App 后台以后,他是不是就停止了,所以,我们还要再 APPDelegate中设置一下后台代理 

    - (void)applicationDidEnterBackground:(UIApplication *)application
    {
        
        // 向操作系统申请后台运行的资格,能维持多久,是不确定的
        UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
            // 当申请的后台运行时间已经结束(过期),就会调用这个block
             
            // 赶紧结束任务
            [application endBackgroundTask:task];
        }];
        
    }

    这样就可以,不是的这样还是不够完善,我们应该还要在 info.plist 中添加一句话才行

    进入Info.plst中设置后台模式:添加 "Required background modes"  选择 -> App plays audio or streams audio/video using AirPlay

    我们这只是来把我们的 APP 伪装成音乐或视频播放器,但是苹果很吊的,你就算是这样,他照样会检测你是不是在播放音频,如果不是,内存爆了也是会杀死的,所以呢,我们有一个方法:

      找一个 0kb 的 MP3 格式的文件(没声音的) 

    在- (void)applicationDidEnterBackground:(UIApplication *)application 代理中循环播放就 OK了!

    补充知识点:

       以前的后台模式只有3种
       保持网络连接
       多媒体应用
       VOIP:网络电话

       app的状态
         1.死亡状态:没有打开app
         2.前台运行状态
         3.后台暂停状态:停止一切动画、定时器、多媒体、联网操作,很难再作其他操作
         4.后台运行状态

  • 相关阅读:
    vue生命周期
    SQL Server 2008教程和Microsoft® SQL Server® 2008 R2 SP2
    min.css----全世界最快的CSS框架
    4分钟网页设计(译文)
    CSS 选择器
    CSS 定位
    [书]WALL·E、龙与地下铁、中国美丽的故事、故事新编、四十自述、书虫、人工智能、大话数据结构
    Underscore.js 初探
    Normalize.css 初识
    什么是 HTML?
  • 原文地址:https://www.cnblogs.com/yxfBlogs/p/4960251.html
Copyright © 2011-2022 走看看