上面pushView需要一个模型 实现代码如下
// push 推送的model
推送过来的数据如下:
/**
content = dsfdsnfds;
id = 5077;
mid = 1270339;
url = "3?_from=push";
urlType = 3;
**/
#import <Foundation/Foundation.h>
@interface STPushModel : STBaseModel<NSCoding> //STBaseModel 是一个继承自NSObject的类 我主要是在这个类中实现了字典转模型的功能 你可以直接修改为NSObject
/***id**/
@property (copy,nonatomic) NSString* recordId;
/***标题**/
@property (copy, nonatomic) NSString *title;
/***url**/
@property (copy, nonatomic) NSString *url;
/***url 类型**/
@property (copy, nonatomic) NSString* urlType;
/***图标的高度**/
@property (assign,nonatomic) NSString * mid;
/***推送内容**/
@property (copy, nonatomic) NSString* content;
@end
因为涉及到好几个页面需要使用同样的推送消息数据 进行判断而处理相应的业务 所有我对此模型做了归档处理
#import "STPushModel.h"
@implementation STPushModel
/**
* 保存对象到文件中
*
* @param aCoder <#aCoder description#>
*/
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.recordId forKey:@"recordId"];
[aCoder encodeObject:self.title forKey:@"title"];
[aCoder encodeObject:self.url forKey:@"url"];
[aCoder encodeObject:self.urlType forKey:@"urlType"];
[aCoder encodeObject:self.mid forKey:@"mid"];
[aCoder encodeObject:self.content forKey:@"content"];
}
/**
* 从文件中读取对象
*
* @param aDecoder <#aDecoder description#>
*
* @return <#return value description#>
*/
-(id)initWithCoder:(NSCoder *)aDecoder
{
//注意:在构造方法中需要先初始化父类的方法
if (self=[super init]) {
self.recordId=[aDecoder decodeObjectForKey:@"recordId"];
self.title=[aDecoder decodeObjectForKey:@"title"];
self.url=[aDecoder decodeObjectForKey:@"url"];
self.urlType=[aDecoder decodeObjectForKey:@"urlType"];
self.mid=[aDecoder decodeObjectForKey:@"mid"];
self.content= [aDecoder decodeObjectForKey:@"content"];
}
return self;
}
@end
做好了上面的准备工作之后 接下来我们就需要 APPdelegate里面注册远程推送通知 并且监听推送消息
这里以个推为例子:
第一步在下面的方法中 实现个推的注册方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 注册个推推送服务
[[GeTuiApilmpl sharedInstance] geTuiRegister];
}
GeTuiApilmpl 是一个单例类 专门用于注册个推的推送方法 实现代码如下:
#import <Foundation/Foundation.h>
#import "GeTuiSdk.h"
@interface GeTuiApilmpl : NSObject <GeTuiSdkDelegate>
+ (GeTuiApilmpl *) sharedInstance;
- (void) geTuiRegister;
@end










