日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

极光推送的坑

發布時間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 极光推送的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

極光推送開發環境可以收到,生產環境收不到推送

初次發現這個問題的時候 首先排查的就是證書配置。

綠色的表示沒什么問題。

開發環境的證書跟生產環境的證書 都已經配置完成,

下面我們看看極光官網的配置

這個也沒有問題。 然后看代碼

//極光植入

? ? [JPUSHService setBadge:0]; //JPush服務器角標置為0

? ? [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];//app角標置為0

? ? //極光推送

? ? //notice: 3.0.0及以后版本注冊可以這樣寫,也可以繼續用之前的注冊方式

? ? JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];

? ? entity.types = JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound;

? ? if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

? ? ? ? // 可以添加自定義categories

? ? ? ? // NSSet<UNNotificationCategory *> *categories for iOS10 or later

? ? ? ? // NSSet<UIUserNotificationCategory *> *categories for iOS8 and iOS9

? ? }

? ? [JPUSHService registerForRemoteNotificationConfig:entity delegate:self];

?? ?

? ? //JAppKey : 極光推送申請下來的appKey Jchannel : 可以直接設置默認值即可 Publish channel

? ? //是否是開啟的

? ? BOOL JPush = NO;

? ? if ([kMemberLoginProductFlag isEqualToString:@"YES"])

? ? {

? ? ? ? JPush = YES;

? ? }

? ? else{

? ? ? ? JPush = NO;

? ? }

?? ?

? ? [JPUSHService setupWithOption:launchOptions appKey:JiGuangAppKey

? ? ? ? ? ? ? ? ? ? ? ? ? channel:nil apsForProduction:JPush]; //如果是生產環境應該設置為YES

?

#pragma mark - 向服務器上報Device Token? ? 極光代理

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

?? ?

? ? // Required - 注冊 DeviceToken

?? ?

? ? [JPUSHService registerDeviceToken:deviceToken];

?? ?

}

#pragma mark - 極光推送代理

- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {

?? ?

? ? NSDictionary * userInfo = notification.request.content.userInfo;

? ? DLog(@"@@@@@@@進來了進來了? %@",userInfo);

? ? if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]])? {

? ? ? ? [JPUSHService handleRemoteNotification:userInfo];

? ? }

? ? completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert);? // 需要執行這個方法,選擇是否提醒用戶,有Badge、Sound、Alert三種類型可以選擇設置

}

?

- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {

?? ?

? ? NSDictionary * userInfo = response.notification.request.content.userInfo;

? ? DLog(@"@@@@@@@進來了進來了? %@",userInfo);

? ? if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {

? ? ? ? [JPUSHService handleRemoteNotification:userInfo];

?? ? ? ?

? ? }

? ? completionHandler(); // 系統要求執行這個方法

? ? [JPUSHService setBadge:0]; //JPush服務器角標置為0

? ? [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];//app角標置為0

?? ?

? ? //這里是自定義了 。。。。。。

? ? if([UIApplication sharedApplication].applicationState == UIApplicationStateActive || [UIApplication sharedApplication].applicationState == UIApplicationStateBackground)

? ? {

? ? ? ? DLog(@"@@@@@@@進來了");

?? ? ? ?

? ? ? ? [self pushViewControllerWith:userInfo];

? ? }else

? ? {

?? ? ? ?

//? ? ? ? if (![USER_DEFAULT valueForKey:kNotificationPushDictionary])

//? ? ? ? {

//? ? ? ? ? ? [self pushViewControllerWith:userInfo];

//? ? ? ? }

? ? ? ? DLog(@"@@@@@@@進來了進來了");

? ? ? ? ? ? ? ? [self pushViewControllerWith:userInfo];

? ? }

}

代碼看了半天也沒啥問題。最后發現是打包的問題,測試環境直接打包就行。

但是生產的 必須一定要adhoc打包才能測試 其他方式打包安裝不行。坑啊 。

其次,前后臺所有的sdk版本要可以對的上的。版本不統一也可能出現推送收不到的問題。瞎忙了2天,快上線了,頭都大了。

總結

以上是生活随笔為你收集整理的极光推送的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。