|
@@ -63,10 +63,6 @@
|
|
|
|
|
|
@property (nonatomic, assign) BOOL hasCheckTrackAuth;
|
|
|
|
|
|
-/// 推送的数据
|
|
|
-@property (nonatomic, strong) NSMutableDictionary *notiferParm;
|
|
|
-
|
|
|
-@property (nonatomic, strong) NSURL *outlinkUrl;
|
|
|
|
|
|
@end
|
|
|
|
|
@@ -173,12 +169,6 @@
|
|
|
[USER_MANAGER queryUserInfoConnectRongCloud:YES];
|
|
|
[self initTableBar];
|
|
|
self.window.rootViewController=_tabBarController;
|
|
|
- if (self.notiferParm) {
|
|
|
- [self getVCUserInfoDict:self.notiferParm];
|
|
|
- }
|
|
|
- else if (self.outlinkUrl) {
|
|
|
- [self handleOutLink:self.outlinkUrl];
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -576,14 +566,8 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
|
}
|
|
|
completionHandler(); // 系统要求执行这个方法
|
|
|
NSMutableDictionary *infoDict = [NSMutableDictionary dictionaryWithDictionary:userInfo];
|
|
|
- UIViewController *vc = self.window.rootViewController;
|
|
|
|
|
|
- if ([vc isKindOfClass:[LaunchAnimationViewController class]]) {
|
|
|
- self.notiferParm = [NSMutableDictionary dictionaryWithDictionary:infoDict];
|
|
|
- }
|
|
|
- else {
|
|
|
- [self getVCUserInfoDict:infoDict];
|
|
|
- }
|
|
|
+ [self getVCUserInfoDict:infoDict];
|
|
|
}
|
|
|
|
|
|
#pragma mark 根据不同消息跳转不同界面
|
|
@@ -593,6 +577,12 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
|
NSError *error;
|
|
|
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
|
|
|
if (!error) {
|
|
|
+ UIViewController *vc = self.window.rootViewController;
|
|
|
+ NSString *token = UserDefault(TokenKey);
|
|
|
+ if ([vc isKindOfClass:[LaunchAnimationViewController class]] || [NSString isEmptyString:token]) {
|
|
|
+ self.outLinkParm = [NSMutableDictionary dictionaryWithDictionary:dict];
|
|
|
+ return;
|
|
|
+ }
|
|
|
NSString *action = [dict stringValueForKey:@"action"];
|
|
|
if ([action isEqualToString:@"app"]) {
|
|
|
NSString *pageType = [dict stringValueForKey:@"pageTag"];
|
|
@@ -670,6 +660,10 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ // 跳转到第二个页面
|
|
|
+ [self.tabBarController tabBarSelectedWithIndex:2];
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- (BOOL)isLowerVersionCompareLocalVersion:(NSString *)localVersion serviceVersion:(NSString *)version {
|
|
@@ -842,6 +836,12 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
|
return NO;
|
|
|
}
|
|
|
else {
|
|
|
+ UIViewController *vc = self.window.rootViewController;
|
|
|
+ NSString *token = UserDefault(TokenKey);
|
|
|
+ if ([vc isKindOfClass:[LaunchAnimationViewController class]] || [NSString isEmptyString:token]) {
|
|
|
+ self.outLinkParm = [NSMutableDictionary dictionaryWithDictionary:dict];
|
|
|
+ return NO;
|
|
|
+ }
|
|
|
NSString *action = [dict stringValueForKey:@"action"];
|
|
|
if ([action isEqualToString:@"app"]) {
|
|
|
NSString *pageType = [dict stringValueForKey:@"pageTag"];
|
|
@@ -885,14 +885,8 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
|
|
|
|
#pragma mark ---- 处理外链
|
|
|
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
|
|
|
- UIViewController *vc = self.window.rootViewController;
|
|
|
- if ([vc isKindOfClass:[LaunchAnimationViewController class]]) {
|
|
|
- self.outlinkUrl = url;
|
|
|
- return YES;
|
|
|
- }
|
|
|
- else {
|
|
|
- return [self handleOutLink:url];
|
|
|
- }
|
|
|
+
|
|
|
+ return [self handleOutLink:url];
|
|
|
}
|
|
|
|
|
|
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
|
|
@@ -917,4 +911,111 @@ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
|
|
}
|
|
|
return _alertView;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+- (void)handleNotiferSource {
|
|
|
+ if (self.outLinkParm) {
|
|
|
+ NSDictionary *dict = [NSDictionary dictionaryWithDictionary:self.outLinkParm];
|
|
|
+ NSString *action = [dict stringValueForKey:@"action"];
|
|
|
+ if ([action isEqualToString:@"app"]) {
|
|
|
+ NSString *pageType = [dict stringValueForKey:@"pageTag"];
|
|
|
+ if ([pageType isEqualToString:@"practiceClass"]) { // 我的课程 ->陪练课
|
|
|
+ DISPLAY_INDEX index = DISPLAY_INDEX_FIRST;
|
|
|
+ MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
|
|
|
+ [ctrl displayWithIndex:index];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ else if ([pageType isEqualToString:@"liveClass"]) { // 我的课程 ->直播课
|
|
|
+ DISPLAY_INDEX index = DISPLAY_INDEX_LIVE;
|
|
|
+ MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
|
|
|
+ [ctrl displayWithIndex:index];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ else if ([pageType isEqualToString:@"videoClass"]) { // 我的课程 ->视频课
|
|
|
+ DISPLAY_INDEX index = DISPLAY_INDEX_VIEO;
|
|
|
+ MyCourseViewController *ctrl = [[MyCourseViewController alloc] init];
|
|
|
+ [ctrl displayWithIndex:index];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ else if ([pageType isEqualToString:@"buyPractice"] || [pageType isEqualToString:@"courseRemind"]) { // 课表
|
|
|
+ [self.tabBarController tabBarSelectedWithIndex:1];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ [navCtrl popToRootViewControllerAnimated:YES];
|
|
|
+ }
|
|
|
+ else if ([pageType isEqualToString:@"homework"]) {
|
|
|
+ NSString *parmString = [dict stringValueForKey:@"params"];
|
|
|
+ NSData *parmData = [parmString mj_JSONData];
|
|
|
+ NSError *error;
|
|
|
+ NSDictionary *parm = [NSJSONSerialization JSONObjectWithData:parmData options:NSJSONReadingMutableContainers error:&error];
|
|
|
+ if (!error) {
|
|
|
+ HomeworkDetailViewController *detailVC = [[HomeworkDetailViewController alloc] init];
|
|
|
+ detailVC.courseId = [parm stringValueForKey:@"courseId"];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ [navCtrl pushViewController:detailVC animated:YES];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if ([pageType isEqualToString:@"message"]) {
|
|
|
+ UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
|
|
|
+ if ([vc isKindOfClass:[UITabBarController class]]) {
|
|
|
+ KSTabBarViewController *tabCtrl = (KSTabBarViewController *)vc;
|
|
|
+ CustomNavViewController *navCtrl = (CustomNavViewController *)tabCtrl.selectedViewController;
|
|
|
+ if ([navCtrl.visibleViewController isKindOfClass:NSClassFromString(@"NotiferMessageViewController")]) {
|
|
|
+ NotiferMessageViewController *ctrl = (NotiferMessageViewController *)navCtrl.visibleViewController;
|
|
|
+ [ctrl refreshView];
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ [self.tabBarController tabBarSelectedWithIndex:0];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ [self.tabBarController tabBarSelectedWithIndex:0];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else { // 统一跳转消息列表
|
|
|
+ UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
|
|
|
+ if ([vc isKindOfClass:[UITabBarController class]]) {
|
|
|
+ KSTabBarViewController *tabCtrl = (KSTabBarViewController *)vc;
|
|
|
+ CustomNavViewController *navCtrl = (CustomNavViewController *)tabCtrl.selectedViewController;
|
|
|
+ if ([navCtrl.visibleViewController isKindOfClass:NSClassFromString(@"NotiferMessageViewController")]) {
|
|
|
+ NotiferMessageViewController *ctrl = (NotiferMessageViewController *)navCtrl.visibleViewController;
|
|
|
+ [ctrl refreshView];
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ [self.tabBarController tabBarSelectedWithIndex:0];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ [self.tabBarController tabBarSelectedWithIndex:0];
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ NotiferMessageViewController *ctrl = [[NotiferMessageViewController alloc] init];
|
|
|
+ [navCtrl pushViewController:ctrl animated:YES];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ NSString *webUrl = [dict stringValueForKey:@"url"];
|
|
|
+ if (![NSString isEmptyString:webUrl]) {
|
|
|
+ KSBaseWKWebViewController *webCtrl = [[KSBaseWKWebViewController alloc] init];
|
|
|
+ webCtrl.url = webUrl;
|
|
|
+ CustomNavViewController *navCtrl = self.tabBarController.selectedViewController;
|
|
|
+ [navCtrl pushViewController:webCtrl animated:YES];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ self.outLinkParm = nil;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
@end
|