iOS極光推送整合注意事項
阿新 • • 發佈:2018-11-13
一、別名推送
//設定別名的主要程式碼
[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這個欄位的統一;如果這些確定了沒問題,還是收不到通知,就去檢查推送證書是否已經失效,重新上傳有效證書即可。