程序接收到远程推送后,app的iconios icon badge 99number怎么显示

程序接收到远程推送后,app的iconbadgenumber怎么显示_百度知道
程序接收到远程推送后,app的iconbadgenumber怎么显示
提问者采纳
 这个跟你的后台服务器发送的消息有关,把消息的条数也一起传过去;后台程序中应该有设置BadgeNumber的方法,将消息数给BadgeNumber就行;你后台推送消息内容时,就行
资深电脑人
其他类似问题
为您推荐:
app的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁iOS消息推送机制 - 简书
下载简书移动应用
写了61290字,被132人关注,获得了139个喜欢
iOS消息推送机制
推送通知跟NSNotification不同1.NSNotification是抽象的,不可见的2.推送通知是可见的
iOS中提供了2中推送通知1.本地推送通知(Local Notification)2.远程推送通知(Remote Notification)
推送的作用:可以让不在前台运行的app,告知客户app内部发生的事情.(QQ消息推送,微信消息推送等等)
推送通知的呈现效果:1.在屏幕顶部显示的一条横幅2.在屏幕中间弹出一个UIAlertView3.在锁屏界面显示一块横幅4.跟新app图标的数字5.播放音效
1.不需要服务器支持(无需联网)就能发出的推送通知2.使用场景: 定时类任务(闹钟,简单的游戏等等)
本地通知推送的实现很简单:1.创建本地推送通知对象[[UILocalNotification alloc] init]创建一个本地通知2.设置本地通知的相关属性必须设置的属性2.1.推送通知的触发时间(何时发出推送通知)@property(nonatomic,copy) NSDate *fireDate2.2.推送通知的具体内容@property(nonatomic,copy) NSString *alertBody2.3.在锁屏时显示的动作标题(完整测标题:"滑动来" + alertAction)@property(nonatomic,copy) NSString *alertAction2.4.设置锁屏界面alertAction是否有效
localNote.hasAction = YES;2.5.app图标数字@property(nonatomic,assign) NSInteger applicationIconBadgeNumber2.6.调度本地推送通知(调度完毕后,推动通知会在特定时间fireDate发出)[[UIApplication shareApplication] scheduleLocalNotification:ln]可以进行设置的设置2.7.设置通知中心通知的标题
localNote.alertTitle = @"";2.8.设置音效(如果不设置就是系统默认的音效, 设置的话会在mainBundle中查找)
localNote.soundName = @"buyao.wav";2.9.每隔多久重复发一次推送通知@property(nonatomic) NSCalendarUnit repeatInterval2.10.点击推送通知打开app时显示的启动图片(mainBundle 中提取图片)@property(nonatomic,copy) NSSring *alertLaunchImage2.11.附加的额外信息@property(nonatomic,copy) NSDictionary *userInfo2.12.时区@property(nonatomic,copy) NSTimeZone *timeZone(一般设置为[NSTimeZone defaultTimeZone],跟随手机的时区)
--代码实现过程:
本地通知.gif
@property(nonatomic,copy) NSDate *fireD
@property(nonatomic,copy) NSTimeZone *timeZ 时区
@property(nonatomic) NSCalendarUnit repeatI 重复间隔(枚举)
@property(nonatomic,copy) NSCalendar *repeatC 重复日期(NSCalendar)
@property(nonatomic,copy) CLRegion *region 设置区域(设置当进入某一个区域时,发出一个通知)
@property(nonatomic,assign) BOOL regionTriggersOnce YES,只会在第一次进入某一个区域时发出通知.NO,每次进入该区域都会发通知
@property(nonatomic,copy) NSString *alertB
@property(nonatomic) BOOL hasA
是否隐藏锁屏界面设置的alertAction
@property(nonatomic,copy) NSString *alertA
设置锁屏界面一个文字
@property(nonatomic,copy) NSString *alertLaunchI
@property(nonatomic,copy) NSString *alertTitle
@property(nonatomic,copy) NSString *soundN
@property(nonatomic) NSInteger applicationIconBadgeN
@property(nonatomic,copy) NSDictionary *userI // 设置通知的额外的数据
- (IBAction)addLocalNote:(id)sender {
// 1.创建一个本地通知
UILocalNotification *localNote = [[UILocalNotification alloc] init];
// 2.设置本地通知的一些属性(通知发出的时间/通知的内容)
// 2.1.设置通知发出的时间
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5.0];
// 2.2.设置通知的内容
localNote.alertBody = @"吃饭了吗?";
// 2.3.设置锁屏界面的文字
localNote.alertAction = @"查看具体的消息";
// 2.4.设置锁屏界面alertAction是否有效
localNote.hasAction = YES;
// 2.5.设置通过点击通知打开APP的时候的启动图片(无论字符串设置成什么内容,都是显示应用程序的启动图片)
localNote.alertLaunchImage = @"111";
// 2.6.设置通知中心通知的标题
localNote.alertTitle = @"";
// 2.7.设置音效
localNote.soundName = @"buyao.wav";
// 2.8.设置应用程序图标右上角的数字
localNote.applicationIconBadgeNumber = 1;
// 2.9.设置通知之后的属性
localNote.userInfo = @{@"name" : @"张三", @"toName" : @"李四"};
// 3.调度通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNote];
当消息被推送过来时,我们需要点击推送消息,来完成一些特定的任务.不如更新界面什么的(监听本地推送通知的点击)
当用户点击本地推送通知的时候,会自动打开app,这里有2种情况
1.app没有关闭,只是一直隐藏在后台让app进入前台,并会调用AppDelegate的下面的方法(并非重新启动app)
点击本地通知.gif
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification----代码实现
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
// 在这里写跳转代码
// 如果是应用程序在前台,依然会收到通知,但是收到通知之后不应该跳转
if (application.applicationState == UIApplicationStateActive)
if (application.applicationState == UIApplicationStateInactive) {
// 当应用在后台收到本地通知时执行的跳转代码
[self jumpToSession];
NSLog(@"%@", notification);
- (void)jumpToSession
UILabel *redView = [[UILabel alloc] init];
redView.backgroundColor = [UIColor redColor];
redView.frame = CGRectMake(0, 100, 300, 400);
redView.numberOfLines = 0;
// redView.text = [NSString stringWithFormat:@"%@", launchOptions];
[self.window.rootViewController.view addSubview:redView];
2.app已经被关闭(进程被杀死)
点击本地通知.gif
启动app,启动完毕会调用AppDelegate的下面的方法- (BOOL)application:(UIApplication *)application didFinishLaunchWithOptions:(NSDictionary *)launchOlaunchOptions参数通过UIApplicationLaunchOptionsLocalNotificationKey取出本地推送通知对象需要特别注意的是:在iOS8.0以后本地通知有了一些变化,如果要使用本地通知,需要得到用户的许可.在didFinishLaunchWithOptions方法中添加如下代码:
#define IS_iOS8 ([[UIDevice currentDevice].systemVersion floatValue] &= 8.0)
if (IS_iOS8) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings];
-----代码实现相关操作
#define IS_iOS8 ([[UIDevice currentDevice].systemVersion floatValue] &= 8.0)
@interface AppDelegate ()
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIUserNotificationTypeNone
不发出通知
UIUserNotificationTypeBadge
= 1 && 0, 改变应用程序图标右上角的数字
UIUserNotificationTypeSound
= 1 && 1, 播放音效
UIUserNotificationTypeAlert
= 1 && 2, 是否运行显示横幅
[application setApplicationIconBadgeNumber:0];
if (IS_iOS8) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings];
// 如果是正常启动应用程序,那么launchOptions参数是null
// 如果是通过其它方式启动应用程序,那么launchOptions就值
if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {
// 当被杀死状态收到本地通知时执行的跳转代码
// [self jumpToSession];
UILabel *redView = [[UILabel alloc] init];
redView.backgroundColor = [UIColor redColor];
redView.frame = CGRectMake(0, 100, 300, 400);
redView.numberOfLines = 0;
redView.text = [NSString stringWithFormat:@"%@", launchOptions];
[self.window.rootViewController.view addSubview:redView];
return YES;
远程推送(Remote Notification)
1.从远程服务器推送给客户端的通知(需要联网)2.远程推送服务, 苹果起名为:APNS (Apple Push Notification Services)解决问题:只要联网了, 就能够接收到服务器推送的远程通知使用须知:所有的苹果设备,在联网状态下,都会与苹果服务器建立长连接.1.长连接:一直连接,客户端与服务器2.长连接作用:
1&事件校准
2&系统升级
3&查找我的iPhone等....3.长连接的好处
1&数据传输速度快
2&数据保持最新状态
官方结实长连接的使用
1.获得deviceToken的过程
1&客户端向苹果服务APNS,发送设备的UDID和英语的Bundle Identifier.2&经苹果服务器加密生成一个deviceToken3&将当前用户的deviceToken(用户标识),发送给自己应用的服务器4&自己的服务器,将得到的deviceToken,进行保存
2.利用deviceToken进行数据传输,推送通知
5&需要推送的时候,将消息和deviceToken一起发送给APNS,苹果服务器,再通过deviceToken找到用户,并将消息发给用户
这里不再演示关于证书的配置, 简单的只进行说明步骤:1& 创建明确的AppID,只有明确的AppID才能进行一些特殊的操作2&真机调试的APNS SSL证书3&发布程序的APNS SSL证书4&生成描述文件[依次安装证书, 再装描述]
注册远程推送通知:
1.客户端如果想要接收APNs的远程推送通知,必须先进行注册(得到用户授权)一般在APP启动完毕后就马上进行注册
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([[UIDevice currentDevice].systemVersion doubleValue] &= 8.0) {
// 1.注册UserNotification,以获取推送通知的权限
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge categories:nil];
[application registerUserNotificationSettings:settings];
// 2.注册远程推送
[application registerForRemoteNotifications];
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeNewsstandContentAvailability | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
return YES;
2.注册成功后, 调用AppDelegate的方法,获取到用户的deviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
// &32e7cf5f 8af9a8d4 2a3aaa76 7f3e9f8e 1f7ea8ff 39f50a2a eee9a4ea&
// &32e7cf5f 8af9a8d4 2a3aaa76 7f3e9f8e 1f7ea8ff 39f50a2a eee9a4ea&
NSLog(@"%@", deviceToken.description);
3.点击推送通知,和本地一样有两种状况.1& app没有关闭,只是一直隐藏在后台让app进入前台, 并调用下面的方法(app没有重新启动)过期的方法:
// 当接受到远程退职时会执行该方法(当进入前台或者应用程序在前台)
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
NSLog(@"%@", userInfo);
UIView *redView = [[UIView alloc] init];
redView.backgroundColor = [UIColor redColor];
redView.frame = CGRectMake(100, 100, 100, 100);
[self.window.rootViewController.view addSubview:redView];
苹果系统建议使用下面的方法:
1.开启后台模式
2.调用completionHandler,告诉系统你现在是否有新的数据更新
3.userInfo添加一个字段:"content-available" : "1" : 只要添加了该字段,接受到通知都会在后台运行
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
NSLog(@"%@", userInfo);
UIView *redView = [[UIView alloc] init];
redView.backgroundColor = [UIColor redColor];
redView.frame = CGRectMake(100, 100, 100, 100);
[self.window.rootViewController.view addSubview:redView];
completionHandler(UIBackgroundFetchResultNewData);
2&app已经关闭,需要重新开启,---基本实现方法和本地通知yi'zhi
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
iOS移动开发相关
· 3679人关注
学习从点滴开始 !
· 2099人关注
开发者加入开发者讨论群!
· 1455人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:主题 : 收到推送的消息后,桌面上app图标上的数字自动加1
级别: 骑士
UID: 349054
可可豆: 970 CB
威望: 846 点
在线时间: 285(时)
发自: Web Page
来源于&&分类
收到推送的消息后,桌面上app图标上的数字自动加1&&&
app没有运行或者后台运行时,收到推送的消息后,桌面上app图标上的数字自动加1。 查了一些资料,都说ApplicationIconBadgeNumber是由推送信息aps中的badge控制的。但我看微信和微博等app,收到信息后是可以累加的。比如我实验了一下,给自己的QQ邮箱发送一条email,微信就会提醒,然后badgeNumber就会自动加1。他这个是怎么实现的呢?
注册开发者账号终于提交信息成功,坐等邓氏来审核在线。。。。。。等
级别: 新手上路
UID: 68970
可可豆: 83 CB
威望: 26 点
在线时间: 211(时)
发自: Web Page
后台加就可以了
级别: 骑士
UID: 349054
可可豆: 970 CB
威望: 846 点
在线时间: 285(时)
发自: Web Page
回 1楼(hjcool7) 的帖子
你是指服务端做叠加吗 客户端要做叠加的话,怎么实现
注册开发者账号终于提交信息成功,坐等邓氏来审核在线。。。。。。等
级别: 新手上路
UID: 68970
可可豆: 83 CB
威望: 26 点
在线时间: 211(时)
发自: Web Page
回 2楼(doujiangchen) 的帖子
客户端做不了,服务端做吧
级别: 骑士
UID: 349054
可可豆: 970 CB
威望: 846 点
在线时间: 285(时)
发自: Web Page
回 3楼(hjcool7) 的帖子
好吧,先放一下这个问题,谢谢你的回答微信授权登陆,你又写过吗,有没有demo,学习一下
注册开发者账号终于提交信息成功,坐等邓氏来审核在线。。。。。。等
级别: 新手上路
UID: 68970
可可豆: 83 CB
威望: 26 点
在线时间: 211(时)
发自: Web Page
回 4楼(doujiangchen) 的帖子
微信没做过,做过QQ的
级别: 骑士
UID: 349054
可可豆: 970 CB
威望: 846 点
在线时间: 285(时)
发自: Web Page
回 5楼(hjcool7) 的帖子
是用腾讯的官网SDK,写得授权登陆吗能不方便发一份demo学习一下&&&&谢谢
注册开发者账号终于提交信息成功,坐等邓氏来审核在线。。。。。。等
关注本帖(如果有新回复会站内信通知您)
9*6-8 正确答案:46
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版}

我要回帖

更多关于 android icon badge 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信