iOS开发_使用百度云推送实现app消息推送

(1)百度云推送的接入请到百度云推送官网查看具体内容,这里不再赘述。

地址:http://push.baidu.com

(2)当app能接收到推送的消息,那么要如何展示给用户呢?

在项目的AppDelegate.m文件中

①当app收到推送消息时,会自动调用

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler方法,在这个方法中添加如下代码:

//创建一个消息对象,“infor_from_server”是自定义的消息名称,"userInfo"是信息的内容字典

NSNotification * notice = [NSNotification notificationWithName:@"infor_from_server" object:nil userInfo:userInfo];

 //发送消息

[[NSNotificationCenter defaultCenter]postNotification:notice];

 

②在需要监听通知的ViewController的.m文件中,创建观察者用于监听刚才发送的消息。

- (void)viewDidLoad

{

//获取通知中心单例对象,添加一个观察者

    NSNotificationCenter * center = [NSNotificationCenter defaultCenter];

    //添加当前类对象为一个观察者,name和object设置为nil,表示接收一切通知

    [center addObserver:self selector:@selector(notice:) name:@"infor_from_server" object:nil];

}

 

//观察者的方法,可以在这个方法中,可以做弹出框把消息内容展示给用户

-(void)notice:(id)sender

{

    NSNotification * notice =(NSNotification*)sender;

    NSDictionary* dictInfo=notice.userInfo;

    NSDictionary* dictInfo_2=dictInfo[@"aps"];

    NSLog(@"消息内容=%@",dictInfo_2[@"alert"]);

    //打印出消息内容

}

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

在使用百度云推送时遇到的问题:

(1)DeviceToken 获取失败,原因:Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x170269140 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}

解决方法:

后来发现是因为开发证书的问题,创建开发证书的时候不能选择带类似"com.baidu.*"这样带"*"的AppID,而是必须选择具体的例如"com.baidu.test".创建这样的证书并下载安装,在Xcode上运行时选择刚才安装的证书。

 

posted @ 2015-10-18 16:42  王北城  阅读(1079)  评论(0编辑  收藏  举报