禁止后台运行后还可以收到推送ios 消息推送,怎么办

在app运行的情况下接收推送信息_iphone开发吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:768贴子:
在app运行的情况下接收推送信息收藏
当你的iPhone收到推送信息后到底会发生什么呢?总共有三种可能性:app在前台运行. 接收到推送信息时屏幕上不会有任何显示,也不会有提示音,但你的app delegate会收到这个推送信息。你可以在这里加入代码来处理接收到的信息。app不在前台运行。iPhone可能停留在主界面或者另一个app正在运行.一个提示窗口会弹出,可能伴随着提示音。用户可以点击Close按钮来关闭这个窗口或者点击View按钮来打开你的app。如果用户点击的时Close按钮,那你的app不会处理这个推送的信息。iPhone在锁屏状态下. 同样一个提示窗口弹出,并伴随着提示音,但是这个窗口不会有Close和View按钮。屏幕解锁后会自动进入你的app。因为app delegate是接收推送信息的地方,我们对app的最后改动都是在AppDelegate.m文件中。我们需要修改两处:application:didFinishLaunchingWithOptions:函数. 如果推送信息到达时你的app不在前台运行,而用户在弹出窗口点击了“View”按钮,你的app会重新运行然后这个信息会作为参数注入到application:didFinishLaunchingWithOptions:函数中。application:didReceiveRemoteNotification:函数. 如果信息到达时你的app正在前台运行,那这个函数就会被调用。在iOS4.0或更新的版本,如果你的app从暂停状态进入前台,这个函数也会被调用。你可以用UIApplication的applicationState属性来检查你的app是否是从暂停状态苏醒。上述的两个函数都会有一个字典参数其中包含了JSON格式的推送信息内容。OS已经帮我们把JSON格式的信息转换成Objective-C字典了。将下面的代码加到didFinishLaunchingWithOptions:函数的return语句前:   if (launchOptions != nil){NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];if (dictionary != nil){NSLog(@"Launched from push notification: %@", dictionary);[self addMessageFromRemoteNotification:dictionary updateUI:NO];}}
我们先确保launchOptions参数不是nil以及launchOptions中包含了推送信息。然后调用addMessageFromRemoteNotification函数来处理这个信息。把下面的函数加到AppDelegate.m文件中:  - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo  {  NSLog(@"Received notification: %@", userInfo);[self addMessageFromRemoteNotification:userInfo updateUI:YES];  }
这个函数同样依靠addMessageFromRemoteNotification来完成处理信息的工作。将下面这个函数复制粘贴到didFinishLaunchingWithOptions:函数上面:- (void)addMessageFromRemoteNotification:(NSDictionary*)userInfo updateUI:(BOOL)updateUI{Message* message = [[Message alloc] init];message.date = [NSDate date]; NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"]; NSMutableArray* parts = [NSMutableArray arrayWithArray:[alertValue componentsSeparatedByString:@": "]];message.senderName = [parts objectAtIndex:0];[parts removeObjectAtIndex:0];message.text = [parts componentsJoinedByString:@": "]; int index = [dataModel addMessage:message]; if (updateUI)[self.chatViewController didSaveMessage:message atIndex:index]; [message release];}
我保证这是最后一点代码了。然我们解释一下这段代码。Message* message = [[Message alloc] init];message.date = [NSDate date];
首先我们创建一个Message对象。我们会把推送信息的内容提取出来,填入到这个对象中然后将这个对象加入到DataModel中。NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
上面的代码从推送信息中获取了信息的内容。推送信息的JSON的格式看起来是这样的:{"aps":{"alert": "SENDER_NAME: MESSAGE_TEXT","sound": "default"},}
服务器把信息内容以及信息作者的昵称放到了“alert”栏中。我们对这个字典中的其他内容并不感兴趣。NSMutableArray* parts = [NSMutableArray arrayWithArray:[alertValue componentsSeparatedByString:@": "]];message.senderName = [parts objectAtIndex:0];[parts removeObjectAtIndex:0];message.text = [parts componentsJoinedByString:@": "];
上面的代码将发送者的昵称和信息内容分解出来放入到Message对象中。发送者昵称是分号和空格之前的字符串。int index = [dataModel addMessage:message];
现在我们可以把这个Message对象加入到DataModel中了。if (updateUI)[self.chatViewController didSaveMessage:message atIndex:index];
最后,我们让ChatViewController加入这个新的信息。但是,如果推送信息是在didFinishLaunchingWithOptions函数中收到的,那我们就不能刷新这个视图,因为那时ChatViewController的表格还没有加载。视图加入这个信息会导致系统崩溃的。就这些了。编译并运行现有的程序。用test_message.html中的表格来发送一些信息。你应该在app的聊天视图中看到这些信息气泡出现。自定义提示信息你应该还记得我们之前在介绍推送信息时曾说过你可以自定义提示设置。比如你可以在有信息时播放一个自定义的提示音。我在app的resources文件夹中放了一个音频文件叫做beep.caf。打开api.php文件并在makePayload()函数中将下面这行代码:$payload = '{"aps":{"alert":"' . $nameJson . ': ' . $textJson . '","sound":"default"}}';
改为:$payload = '{"aps":{"alert":"' . $nameJson . ': ' . $textJson . '","sound":"beep.caf"}}';
你不需要改变app本身的任何代码,甚至不用重新编译。但你还是应该在设备上关闭打开了的app。因为如果我们的app正在前台运行,那提示音是不会响的。现在用test_message.html给app发一个信息。当提示窗口出现时,提示音是不是不同了?你也可以实验修改其他的选项。比如提供自定义按钮,或者给app设定数量小图标。(如果你想实验数量小图标,别忘了让app注册接收数量图标。现在我们的app只会有提示音和提示窗口。)
iOS 如何实现推送通知
这么好的贴居然没有留言。感谢楼主的贡献,对我十分有用。
这两天在疯狂的看远程推送的东西,以前没弄过,累啊
不错啊!!谢谢LZ
很好,很详细,特别棒!
真的 很好,真是我想要的,顺便请问楼主,在app在后台运行时,如何从推送进入指定界面,也就是获取 存放推送信息的字典
先mark一个,弄推送已经整个人都不好了,之前没接触过这些东西。
你好,楼主,请问有什么方法,可以让运行状态下的app接收到的远程推送消息在消息中心显示呢
在未开启应用的情况下,接受Message呢(注意不是Notification)?谢谢
图书,亚马逊Z.cn网上书店,700多万种中外精品正版好书低价特惠,送货上门,书到付款!图书,亚马逊网上书店,热门图书一网打尽!正版图书,天天低价!
如果APP是在后台运行呢
点击推送消息怎么跳转到对应的viewController?
真的 很好,真是我想要的,顺便请问楼主,在app在后台运行时,如何从推送进入指定界面,也就是获取 存放推送信息的字典
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或经验487 米
在线时间15 小时
版本7.1.12
积分 586, 距离下一级还需 1414 积分
积分 586, 距离下一级还需 1414 积分
机型小米手机5SPlus
MIUI版本7.1.12
小米手机5s Plus
V8.0.13.0.MBGCNDI
是不是有后台任务什么的仍然在启动,禁止自启动没用?
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
经验1432 米
在线时间13 小时
版本7.1.12
机型小米手机5
签到次数32
MIUI版本7.1.12
说明京东用的mipush
经验487 米
在线时间15 小时
版本7.1.12
积分 586, 距离下一级还需 1414 积分
积分 586, 距离下一级还需 1414 积分
机型小米手机5SPlus
MIUI版本7.1.12
那咋禁止这些?
经验487 米
在线时间15 小时
版本7.1.12
积分 586, 距离下一级还需 1414 积分
积分 586, 距离下一级还需 1414 积分
机型小米手机5SPlus
MIUI版本7.1.12
经验4052 米
在线时间349 小时
版本7.1.18
机型未知设备
签到次数104
MIUI版本7.1.18
来自网页版
你可以在设置-通知和状态栏里关闭京东的所有通知
经验487 米
在线时间15 小时
版本7.1.12
积分 586, 距离下一级还需 1414 积分
积分 586, 距离下一级还需 1414 积分
机型小米手机5SPlus
MIUI版本7.1.12
danny_tdd 发表于
你可以在设置-通知和状态栏里关闭京东的所有通知
物流通知还是需要的啊
经验4052 米
在线时间349 小时
版本7.1.18
机型未知设备
签到次数104
MIUI版本7.1.18
来自网页版
物流通知还是需要的啊
那只能这样了,要么都关,要么都开,如果要想只要你想要的通知,那只能app自己做筛选功能了
在线时间3 小时
版本V8.1.3.0.MAACNDI
积分 63, 距离下一级还需 137 积分
积分 63, 距离下一级还需 137 积分
机型小米手机5
MIUI版本V8.1.3.0.MAACNDI
来自网页版
那只能这样了,要么都关,要么都开,如果要想只要你想要的通知,那只能app自己做筛选功能了 ...
禁止后打开软件之后能不能收到这些消息?
经验4052 米
在线时间349 小时
版本7.1.18
机型未知设备
签到次数104
MIUI版本7.1.18
来自网页版
禁止后打开软件之后能不能收到这些消息?
如果通知栏那关闭了通知,此app在通知栏无任何消息显示
在线时间3 小时
版本V8.1.3.0.LHNCNDI
积分 33, 距离下一级还需 17 积分
积分 33, 距离下一级还需 17 积分
机型红米Note3
MIUI版本V8.1.3.0.LHNCNDI
来自网页版
进如京东app,点消息中心,然后设置,里面有开关什么快递通知,优惠通知,啥的
APP 1000万
MIUI论坛APP注册用户突破1000万纪念勋章
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号专业的QQ下载站 本站非腾讯QQ官方网站
本类阅读排行
12345678910
热点图文新闻
关闭安卓应用推送消息方法 让你告别状态栏烦人的通知
导读:有时候我们会为了一个烦人的应用推送,而烦恼不已,关闭了一会又来,怎样简单快速的阻止应用推送消息呢?不用ROOT,不用安装任何APK,只需一个简单的技巧,从此告别那些烦人的应用推送,就是这么简单!
有时候我们会为了一个烦人的应用推送,而烦恼不已,关闭了一会又来,怎样简单快速的阻止应用推送消息呢?不用ROOT,不用安装任何APK,只需一个简单的技巧,从此告别那些烦人的应用推送,就是这么简单!关闭安卓应用推送消息方法进入应用详情页后,取消默认的勾选「显示通知」选项就可以完全禁止指定应用的消息推送了。可以看到,取消通知显示选项后,常驻在状态栏左上方的QQ图标也将随之消失。当然QQ我们一直在用,禁不禁止,自己决定,小编只是举例,所有应用禁止推送的设置方法都是一样的。
作者:qqtn强柔
阅读本文后您有什么感想? 已有 0 人给出评价!

我要回帖

更多关于 环信收到消息推送 的文章

 

随机推荐