1. 程式人生 > >iOS極光推送整合注意事項

iOS極光推送整合注意事項

一、別名推送

//設定別名的主要程式碼

[JPUSHService setAlias:string callbackSelector:@selector(tagsAliasCallback:tags:alias:) object:self];
- (void)tagsAliasCallback:(int)iResCode tags:(NSSet *)tags alias:(NSString *)alias
{
//iResCode返回為0時,代表設定別名成功;
}


//**極光jpush新版本中的方法**
 [JPUSHService getAlias:^(NSInteger iResCode, NSString
*iAlias, NSInteger seq) { NSLog(@"iResCode == %ld, iAlias == %@",(long)iResCode,iAlias); if (![iAlias isEqualToString:@"你想要設定的別名"){ //設定別名 [JPUSHService setAlias:@"你想要設定的別名" completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) { NSLog
(@"callBackTextView %@",[NSString stringWithFormat:@"code%ld, \ncontent: %@, \nseq: %ld\n", (long)code, content, (long)seq]); } seq:0]; } } seq:0]; 注:別名設定成功後除非再次設定把之前的別名覆蓋,否則會一直存在,所以,沒有必要每次都呼叫設定的方法,先呼叫拿到別名的方法,判斷是否跟之前的別名一致,如果不一致再設定。 //刪除別名 [JPUSHService deleteAlias:^(NSInteger
iResCode, NSString *iAlias, NSInteger seq) { NSLog(@"callBackTextView %@",[NSString stringWithFormat:@"code%ld, \ncontent: %@, \nseq: %ld\n", (long)code, content, (long)seq]); } seq:0]; 列印資訊:callBackTextView code0, content: (null), seq: 0 注:***不能用[JPUSHService setAlias:@"" completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) { } seq:0]這種方法刪除別名***,因為極光文件中規定有效的別名不能設定nil或者空字串@""

坑1:設定別名的方法不要直接在- (void)viewDidLoad中直接呼叫,而且最好是延遲呼叫;

因為該方法在程式開始執行的時候就會呼叫,如果不延遲呼叫,頁面還未載入就已經呼叫了該方法,會導致設定別名失敗。

二、apsForProduction

apsForProduction

是1.3.1版本新增,用於標識當前應用所使用的APNs證書環境。
0 (預設值)表示採用的是開發證書,1 表示採用生產證書釋出應用。

坑2:在測試時,要分清是測試環境還是生產環境後臺該欄位的值也要與移動端保持一致

三、移動端收不到通知

如果出現移動端接收不到通知,而後臺顯示傳送成功的問題:
首先,檢查配置環境是否都配置妥當,按照官方文件的步驟設定即可;其次檢查程式碼中的呼叫方法是否正確,尤其是apsForProduction這個欄位的統一;如果這些確定了沒問題,還是收不到通知,就去檢查推送證書是否已經失效,重新上傳有效證書即可。