一、設置badge(角標)
[[UIApplicationsharedApplication]setApplicationIconBadgeNumber:0];
[JPUSHServicesetBadge:0];//清空JPush服務器中存儲的badge值
JPush為每個客戶端保管其特定的badge值。客戶端有變卦時,把badge值更新到JPush服務器。有新的推送時,把這個值+1推送上去。
(1)+(BOOL)setBadge:(int)value ; //設置JPush服務器中存儲的值
注:設置badge值,本地仍須調用UIApplication:setApplicationIconBadgeNumber函數
二、推送目的的設備選擇方式
(1)播送
(2)tag(標簽):用標簽來停止大規模的設備屬性、用戶屬性的分群。
為裝置使用順序的用戶打上標簽,以便於開發者依據標簽來批量下發push音訊。
(3)alias(別名):用別名來標識一個用戶,一個設備只能綁定一一般名,但多個設備可以綁定同一一般名。
同一個使用順序內,對不同的用戶建議取不同的別名,盡能夠依據別名來獨一確定用戶。
(4)RegistrationID(設備標識)
集成了Jpush SDK的使用順序在第一次成功注冊到JPush服務器時,JPush服務器會給客戶端返 回一個獨一的該設備標識。IOS9零碎,使用卸載重裝,RegistationID會發作改動。
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(registerDeviceId)name:kJP.networkDidLoginNotificationobject:nil];//登錄成功後
-(void)registerDeviceId
{
[JPUSHServiceregistrationID];
NSLog(@"registrationID:%@",[JPUSHServiceregistrationID]);
//在登錄成功對應的辦法中設置標簽及別名
留意:在加入登陸時,要去除對標簽及別名的綁定
/**tags alias
*空字符串(@“”)表示取消之前的設置
*nil,此次調用不設置此值
*每次調用設置無效的別名,掩蓋之前的設置
*/
NSString*alias =@"hello";
[JPUSHServicesetTags:nilalias:aliasfetchCompletionHandle:^(intiResCode,NSSet*iTags,NSString*iAlias) {
NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);//對應的形態碼前往為0,代表成功
}];
}
三、本地告訴(獲取apns推送內容)
//1.關於極光推送來說,假如App形態為未運轉,函數application:didFinishLaunchingWithOptions:將被調用
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
//本地告訴內容獲取
NSDictionary*remoteNotification = [launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
NSLog(@"若launchOptions包括UIApplicationLaunchOptionsRemoteNotificationKey表示用戶點擊本地告訴招致app被啟動運轉;若不包括則能夠為直接點擊icon被啟動或其他");
}
//2.假如App形態為正在前台或許點擊告訴欄的告訴音訊,蘋果的回調函數將被調用
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler {
//獲得APNs規范信息內容
NSDictionary*aps = [userInfovalueForKey:@"aps"];
NSString*content = [apsvalueForKey:@"alert"];//推送顯示的內容
NSIntegerbadge = [[apsvalueForKey:@"badge"]integerValue];//badge數量
NSString*sound = [apsvalueForKey:@"sound"];//播放的聲響
//獲得Extras字段內容
NSString*customizeField1 = [userInfovalueForKey:@"customizeExtras"];//服務端中Extras字段,key是自己定義的
NSLog(@"content =[%@], badge=[%ld], sound=[%@], customize field =[%@]",content,(long)badge,sound,customizeField1);
//判別順序能否在前台運轉
if(application.applicationState==UIApplicationStateActive) {
//假如使用在前台,在這裡執行
UIAlertView*alertView = [[UIAlertViewalloc]initWithTitle:@"極光推送"message:contentdelegate:nilcancelButtonTitle:@"ok"otherButtonTitles:nil,nil];
[alertViewshow];
}
//IOS7 Support Required,處置收到的APNS信息
//假如使用在後台,在這裡執行
[JPUSHServicehandleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
[JPUSHServicesetBadge:0];//清空JPush服務器中存儲的badge值
[applicationsetApplicationIconBadgeNumber:0];//小紅點清0操作
}
/**前台運轉時,可接納由JPush下發的自定義音訊
*獲取自定義音訊(只要在前端運轉的時分才干收到自定義音訊的推送)
* kJP.networkDidReceiveMessageNotification//收到音訊(非APNS)
*/
NSNotificationCenter*defaultCenter = [NSNotificationCenterdefaultCenter];
[defaultCenteraddObserver:selfselector:@selector.networkDidReceiveMessage:)name:kJPFNetworkDidReceiveMessageNotificationobject:nil];
- (void)networkDidReceiveMessage:(NSNotification*)notification {
/**
*參數描繪:
content:獲取推送的內容
extras:獲取用戶自定義參數
customizeField1:依據自定義key獲取自定義的value
*/
NSDictionary* userInfo = [notificationuserInfo];
NSString*content = [userInfovalueForKey:@"content"];
NSDictionary*extras = [userInfovalueForKey:@"extras"];
NSString*customizeField1 = [extrasvalueForKey:@"customizeField1"];///服務端傳遞的Extras附加字段,key是自己定義的
NSIntegerbadge = [[[userInfovalueForKey:@"aps"]valueForKey:@"badge"]integerValue];
NSLog(@"%jiaobao--ld",(long)badge);
NSLog(@"custuserInfo:%@",userInfo);
NSLog(@"custcontent:%@",content);
NSLog(@"custextras:%@",extras);
NSLog(@"customizeField1:%@",customizeField1);
NSLog(@"cust獲取注冊ID:%@", [JPUSHServiceregistrationID]);
}
【ios集成極光推送的一些坑點及步驟】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!