最近公司应用要从腾讯的信鸽推送转变到个推推送。咱就先把信鸽推送总结一下,以备后用。(复杂实际是处理推送,而不是接入。重要是思想以及思考)
信鸽接入还是比较简单的,缺点就是(实际使用中)体验上有时候比较慢,不及时。
1.接入准备。
你首先的需要一个demo应用。然后注册一个信鸽账号,添加你的demo应用。拿到接入推送的一些凭证(appID,appKey).然后将你的demo应用在苹果开发者证书配置中注册推送开发或者生产证书(这个你可以网上找很多图文的)。下载完双击(添加至Mac钥匙串,右键导出格式p12),导出p12文件。添加至信鸽应用管理的对应的配置环境中。接入准备over~。
2.打开iOS接入文档,打开iOS接入文档,打开iOS接入文档!
倒入所需要的framework & lib. 按照文档接入一般是没问题的(仔细一点儿)。信鸽demo写的不错。只需要改一些自己的代码习惯就好了。
在AppDelegate.m 中添加
#import "XGSetting.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
//引导页 做一些文件目录, 三方库初始化,推送通知初始化,指定主控制器 版本检测
return YES;
}
中加入
// 通知
[self didConfigureNotification:launchOptions];
然后自定义方法 doNotification:
#pragma mark Notification
- (void)didConfigureNotification:(NSDictionary * )launchOptions{
// 接入XG 推送
[[XGSetting getInstance] enableDebug:YES];/*提高: 调试信息开关 根据环境 你可以写个判断当前编译环境
,方便调试*/
//将你拿到的信鸽appID appKey填入 这里是宏
[XGPush startApp:XGId appKey:XGKey];
//应用完全退出 点击通知处理
NSDictionary* remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (nil!=remoteNotification) {//没通知
}else{
//清空消息角标
[UIApplication sharedApplication].applicationIconBadgeNumber = 0 ;
}
[self registerAPNS]; //向苹果服务器注册远程推送
/*提高 注册本地推送*/
//启动信鸽SDK
[XGPush handleLaunching:remoteNotification successCallback:^{
// NSLog(@"[XGDemo] Handle launching success:%@",launchOptions);
} errorCallback:^{
// NSLog(@"[XGDemo] Handle launching error");
}];
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
//拿到苹果推送标识 向信鸽注册标识
NSString *deviceTokenStr = [XGPush registerDevice:deviceToken account:【你自定义的账户】successCallback:^{
// NSLog(@"XGPushsuccess register");
} errorCallback:^{
// NSLog(@"XGPushfailed register");
}];
/* 提高 举个例子: 注册客服SDK 为你的商城应用添加在线客服*/
[[NSUserDefaults standardUserDefaults] setValue:deviceTokenStr forKey:@"deviceToken"];// 保存起来,找个地方。线上版本出了问题可以拿来救命(调试)