// // YMGlobalUtils.m // MSYOUPAI // // Created by YoMi on 2024/2/4. // Copyright © 2024 MS. All rights reserved. // #import "YMGlobalUtils.h" #import "YMWindowUtils.h" #import "YMVerifyCodeLoginViewController.h" #import "YMPasswordLoginViewController.h" #import "YMRetrievePasswordViewController.h" #import "YMRegisterViewController.h" #import "YMImproveInfoViewController.h" #import "YMHomePageViewController.h" #import "YMAudioVideoMatchingViewController.h" #import "YMSearchUserViewController.h" #import "YMDynamicDetailViewController.h" #import "YMDynamicMessagesViewController.h" #import "YMRankingViewController.h" #import "YMMineViewController.h" #import "YMFriendsViewController.h" #import "YMSpoorViewController.h" #import "YMReceivedLikesViewController.h" #import "YMGuestViewController.h" #import "YMMemberCenterViewController.h" #import "YMAccountBalanceViewController.h" #import "YMMyEarningsViewController.h" #import "YMWithdrawalAccountListViewController.h" #import "YMBindWithdrawalAccountViewController.h" #import "YMPersonalPageViewController.h" #import "YMPersonalDynamicViewController.h" #import "YMEditProfileViewController.h" #import "YMEditInfoTypeViewController.h" #import "YMSoundShowcaseViewController.h" #import "YMInvitingPrizesViewController.h" #import "YMInvitationBreakdownViewController.h" #import "YMWebArticleViewController.h" #import "YMReportViewController.h" #import "YMGoddessCertifiedProtocolViewController.h" #import "YMAuthenticationCenterViewController.h" #import "YMCustomCameraViewController.h" #import "YMIncomeBreakdownViewController.h" #import "YMSettingViewController.h" #import "YMChatNotificationViewController.h" #import "YMGreetingSettingViewController.h" #import "YMCreateGreetingTemplateViewController.h" #import "YMFeesSettingViewController.h" #import "YMAdolescentModelViewController.h" #import "YMBlackListViewController.h" #import "YMCancellationAccountViewController.h" #import "YMAboutUsViewController.h" #import "YMGuildManagementViewController.h" #import "YMGuildManagementRefreshViewController.h" #import "YMHomeController.h" #import "YMGuildManagementMyConnectionsViewController.h" #import "YMAppConfigModel.h" #import "OpenInstallSDK.h" #import "YMAdvertModel.h" @interface YMGlobalUtils () /// 支付方式数据 @property (nonatomic, strong, readwrite) NSArray *payMethodDataArray; /// 省市级字典 @property (nonatomic, strong, readwrite) NSArray *provinceCityArr; /// 城市代码字典 @property (nonatomic, strong, readwrite) NSDictionary *cityCodeDic; @end @implementation YMGlobalUtils + (instancetype)shared { static YMGlobalUtils *_instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instance = [[YMGlobalUtils alloc] init]; _instance.advModels = [NSMutableArray array]; }); return _instance; } - (NSArray *)advModelTags { NSMutableArray *arrm = [NSMutableArray array]; for (YMAdvertModel *model in self.advModels) { [arrm addObject:model.tag]; } return [arrm copy]; } + (UIViewController *)getCurrentVC { UIViewController *rootViewController = [YMWindowUtils keyWindow].rootViewController; UIViewController *currentVC = [self getCurrentVCFrom:rootViewController]; return currentVC; } + (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC { UIViewController *currentVC; if ([rootVC presentedViewController]) { // 视图是被presented出来的 rootVC = [rootVC presentedViewController]; } if ([rootVC isKindOfClass:[UITabBarController class]]) { // 根视图为UITabBarController currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]]; } else if ([rootVC isKindOfClass:[UINavigationController class]]){ // 根视图为UINavigationController currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]]; } else { // 根视图为非导航类 currentVC = rootVC; } return currentVC; } + (void)registerRouter{ /// 验证码登录 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_VERIFY_CODE_LOGIN) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMVerifyCodeLoginViewController *verifyCodeLoginVC = [[YMVerifyCodeLoginViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:verifyCodeLoginVC animated:YES]; }]; /// 密码登录 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_PASSWORD_LOGIN) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMPasswordLoginViewController *passwordLoginVC = [[YMPasswordLoginViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:passwordLoginVC animated:YES]; }]; /// 忘记密码 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_FORGET_PASSWORD) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMRetrievePasswordViewController *forgetPasswordVC = [[YMRetrievePasswordViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:forgetPasswordVC animated:YES]; }]; /// 注册 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_REGISTER) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMRegisterViewController *registerVC = [[YMRegisterViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:registerVC animated:YES]; }]; /// 完善资料 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_IMPROVE_INFO) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMImproveInfoViewController *improveInfoVC = [[YMImproveInfoViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:improveInfoVC animated:YES]; }]; /// 首页 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_HOME_PAGE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMHomePageViewController *homePageVC = [[YMHomePageViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:homePageVC animated:YES]; }]; /// 首页 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_HOME_PAGE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMHomeController *homeVC = [[YMHomeController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:homeVC animated:YES]; }]; /// 音视频匹配 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_AUDIO_VIDEO_MATCHING) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMAudioVideoMatchingViewController *audioVideoMatchingVC = [[YMAudioVideoMatchingViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:audioVideoMatchingVC animated:YES]; }]; /// 搜索用户 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_SEARCH_USER) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMSearchUserViewController *searchUserVC = [[YMSearchUserViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:searchUserVC animated:YES]; }]; /// 动态详情 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_DYNAMIC_DETAIL) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMDynamicDetailViewController *dynamicDetailVC = [[YMDynamicDetailViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:dynamicDetailVC animated:YES]; }]; /// 动态消息 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_DYNAMIC_MESSAGES) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMDynamicMessagesViewController *dynamicMessagesVC = [[YMDynamicMessagesViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:dynamicMessagesVC animated:YES]; }]; /// 榜单 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_RANKING) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMRankingViewController *rankingVC = [[YMRankingViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:rankingVC animated:YES]; }]; /// 我的 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_MINE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMMineViewController *mineVC = [[YMMineViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:mineVC animated:YES]; }]; /// 好友 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_FRIENDS) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMFriendsViewController *friendsVC = [[YMFriendsViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:friendsVC animated:YES]; }]; /// 足迹 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_SPOOR) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMSpoorViewController *spoorVC = [[YMSpoorViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:spoorVC animated:YES]; }]; /// 获赞 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_RECEIVED_LIKES) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMReceivedLikesViewController *receivedLikesVC = [[YMReceivedLikesViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:receivedLikesVC animated:YES]; }]; /// 访客 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_GUEST) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMGuestViewController *guestVC = [[YMGuestViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:guestVC animated:YES]; }]; /// 会员中心 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_MEMBER_CENTER) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMMemberCenterViewController *memberCenterVC = [[YMMemberCenterViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:memberCenterVC animated:YES]; }]; /// 充值中心 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_ACCOUNT_BALANCE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMAccountBalanceViewController *accountBalanceVC = [[YMAccountBalanceViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:accountBalanceVC animated:YES]; }]; /// 我的收益 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_MY_EARNINGS) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMMyEarningsViewController *myEarningsVC = [[YMMyEarningsViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:myEarningsVC animated:YES]; }]; /// 提现账号列表 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_WITHDRAWAL_ACCOUNT_LIST) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMWithdrawalAccountListViewController *withdrawalAccountListVC = [[YMWithdrawalAccountListViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:withdrawalAccountListVC animated:YES]; }]; /// 绑定提现账号 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_BIND_WITHDRAWAL_ACCOUNT) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMBindWithdrawalAccountViewController *bindWithdrawalAccountVC = [[YMBindWithdrawalAccountViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:bindWithdrawalAccountVC animated:YES]; }]; /// 个人主页 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_PERSONAL_PAGE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMPersonalPageViewController *personalPageVC = [[YMPersonalPageViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:personalPageVC animated:YES]; }]; /// 个人动态 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_PERSONAL_DYNAMIC) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMPersonalDynamicViewController *personalDynamicVC = [[YMPersonalDynamicViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:personalDynamicVC animated:YES]; }]; /// 编辑资料 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_EDIT_PROFILE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMEditProfileViewController *editProfileVC = [[YMEditProfileViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:editProfileVC animated:YES]; }]; /// 编辑信息类型 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_EDIT_INFO_TYPE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMEditInfoTypeViewController *editInfoTypeVC = [[YMEditInfoTypeViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:editInfoTypeVC animated:YES]; }]; /// 声音展示 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_SOUND_SHOWCASE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMSoundShowcaseViewController *soundShowcaseVC = [[YMSoundShowcaseViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:soundShowcaseVC animated:YES]; }]; /// 邀请有奖 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_INVITING_PRIZES) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMInvitingPrizesViewController *invitingPrizesVC = [[YMInvitingPrizesViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:invitingPrizesVC animated:YES]; }]; /// 邀请明细 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_INVITING_BREAKDOWN) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMInvitationBreakdownViewController *invitationBreakdownVC = [[YMInvitationBreakdownViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:invitationBreakdownVC animated:YES]; }]; /// 网页文章 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_WEB_ARTICLE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMWebArticleViewController *webArticleVC = [[YMWebArticleViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:webArticleVC animated:YES]; }]; /// 举报 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_REPORT) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMReportViewController *reportVC = [[YMReportViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:reportVC animated:YES]; }]; /// 女神认证协议 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_GODDESS_CERTIFIED_PROTOCOL) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMGoddessCertifiedProtocolViewController *goddessCertifiedProtocolVC = [[YMGoddessCertifiedProtocolViewController alloc]initWithViewModel:viewModel]; dispatch_async(dispatch_get_main_queue(), ^{ [[self getCurrentVC].navigationController pushViewController:goddessCertifiedProtocolVC animated:YES]; }); }]; /// 认证中心 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_AUTHENTICATION_CENTER) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMAuthenticationCenterViewController *authenticationCenterVC = [[YMAuthenticationCenterViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:authenticationCenterVC animated:YES]; }]; /// 自定义相机 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_CUSTOM_CAMERA) toHandler:^(NSDictionary *routerParameters) { dispatch_async(dispatch_get_main_queue(), ^{ id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMCustomCameraViewController *customCameraVC = [[YMCustomCameraViewController alloc]initWithViewModel:viewModel]; CATransition* transition = [CATransition animation]; transition.duration = 0.4f; transition.type = kCATransitionMoveIn; transition.subtype = kCATransitionFromTop; [[self getCurrentVC].navigationController.view.layer addAnimation:transition forKey:kCATransition]; [[self getCurrentVC].navigationController pushViewController:customCameraVC animated:NO]; }); }]; /// 收支明细 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_INCOME_BREAKDOWN) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMIncomeBreakdownViewController *incomeBreakdownVC = [[YMIncomeBreakdownViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:incomeBreakdownVC animated:YES]; }]; /// 设置 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_SETTING) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMSettingViewController *settingVC = [[YMSettingViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:settingVC animated:YES]; }]; /// 消息通知 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_CHAT_NOTIFICATION) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMChatNotificationViewController *blackListVC = [[YMChatNotificationViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:blackListVC animated:YES]; }]; /// 打招呼设置 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_GREETING_SETTING) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMGreetingSettingViewController *greetingSettingVC = [[YMGreetingSettingViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:greetingSettingVC animated:YES]; }]; /// 新建打招呼模板 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_CREATE_GREETING_TEMPLATE) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMCreateGreetingTemplateViewController *createGreetingTemplateVC = [[YMCreateGreetingTemplateViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:createGreetingTemplateVC animated:YES]; }]; /// 收费设置 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_FEES_SETTING) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMFeesSettingViewController *feesSettingVC = [[YMFeesSettingViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:feesSettingVC animated:YES]; }]; /// 青少年模式 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_ADOLESCENT_MODEL) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMAdolescentModelViewController *adolescentModelVC = [[YMAdolescentModelViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:adolescentModelVC animated:YES]; }]; /// 黑名单 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_BLACKLIST) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMBlackListViewController *blackListVC = [[YMBlackListViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:blackListVC animated:YES]; }]; /// 注销账号 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_CANCELLATION_ACCOUNT) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMCancellationAccountViewController *cancellationAccountVC = [[YMCancellationAccountViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:cancellationAccountVC animated:YES]; }]; /// 关于我们 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_ABOUT_US) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMAboutUsViewController *aboutUsVC = [[YMAboutUsViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:aboutUsVC animated:YES]; }]; /// 公会管理 [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_GUILD_MANAGEMENT) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMGuildManagementViewController *guildManagementVC = [[YMGuildManagementViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:guildManagementVC animated:YES]; }]; [YMRouter registerURLPattern:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_URL_MANAGER_MEMBER) toHandler:^(NSDictionary *routerParameters) { id viewModel = routerParameters[YMRouterParameterUserInfo][RouterViewModel]; YMGuildManagementMyConnectionsViewController *guildManagementVC = [[YMGuildManagementMyConnectionsViewController alloc]initWithViewModel:viewModel]; [[self getCurrentVC].navigationController pushViewController:guildManagementVC animated:YES]; }]; } - (void)getConfig{ @weakify(self) [LCHttpHelper requestWithURLString:AppConfig parameters:nil needToken:YES type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) if (!responseObject) { return; } NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { NSDictionary *data = [dict dictionaryValueForKey:@"data" defaultValue:@{}]; YMAppConfigModel *model = [YMAppConfigModel yy_modelWithJSON:data]; NSString* sysId = model.config.sysId; NSString* servId = model.config.servId; NSString* appurl = model.config.appurl; NSArray* serviceIdArr = model.config.serviceId; NSString *audit_status = stringFormat(@"%ld",model.config.audit_status); NSString *rankH5Url = model.rank_url; NSInteger free = model.config.free; NSInteger isLive = [model.config.is_live intValue]; if (!OCStringIsEmpty(model.webUrl.tv)) { [OCUserDefaults setObject:model.webUrl.tv forKey:kON_TV_WEB_URL]; } if (!OCStringIsEmpty(model.webUrl.anchorStarlevel)) { [OCUserDefaults setObject:model.webUrl.anchorStarlevel forKey:kINCREASE_STAR_RATING_URL]; } if (!OCStringIsEmpty(model.webUrl.help)) { [OCUserDefaults setObject:model.webUrl.anchorStarlevel forKey:kHELP_URL]; } if (!OCStringIsEmpty(model.webUrl.recharge_agreement)) { [OCUserDefaults setObject:model.webUrl.recharge_agreement forKey:kRECHARGE_AGREEMENT_URL]; } if (!OCStringIsEmpty(model.webUrl.juvenile_protection)) { [OCUserDefaults setObject:model.webUrl.juvenile_protection forKey:kMINOR_PROTECTION_PROGRAM_URL]; } [OCUserDefaults synchronize]; // if ([LCSaveModel getUserModel].youpaipuserinfo.youpaipfinish_status != 0) { // [self youpaifloadAdvert1]; // } [LCSaveData saveCooperationId:model.config.cooperationId]; [LCSaveData saveAppUrl:appurl]; [LCSaveData saveSysId:sysId]; [LCSaveData saveServerId:servId]; [LCSaveData saveServiceIdArr:serviceIdArr]; [LCSaveData saveRankH5Url:rankH5Url]; [LCSaveData saveIMPrice:free]; [LCSaveData saveIsLive:isLive]; NSArray *gatewayArray = [model.config.gateway componentsSeparatedByString:@","]; NSMutableArray *tempPayArray = [NSMutableArray array]; [gatewayArray enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { NSString *icon = @""; NSString *title = @""; if ([obj containsString:@"wechat"]) { icon = @"ym_common_wechat_pay_icon"; title = @"微信支付"; [tempPayArray addObject:@{ @"id":@(idx), @"icon":icon, @"title":title, @"code":obj }]; } else if ([obj containsString:@"alipay"]) { icon = @"ym_common_alipay_pay_icon"; title = @"支付宝支付"; [tempPayArray addObject:@{ @"id":@(idx), @"icon":icon, @"title":title, @"code":obj }]; } }]; self.payMethodDataArray = [tempPayArray.rac_sequence map:^id _Nullable(NSDictionary * _Nullable dic) { YMPayMethodCellViewModel *viewModel = [[YMPayMethodCellViewModel alloc]initWithParams:@{ ParamsModel:dic }]; return viewModel; }].array; for (YMBubbleModel *bubbleModel in model.dress.bubble) { [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[LCTools getImageUrlWithAddress:bubbleModel.bubble] options:SDWebImageDownloaderUseNSURLCache progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) { } completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) { if(data != nil){ [LCSaveData saveBubbleWithKey:[LCTools getImageUrlWithAddress:bubbleModel.bubble].absoluteString Data:data]; } }]; } BOOL onlineStatus = NO; if (audit_status.length != 0) { onlineStatus = ![audit_status boolValue]; } if (onlineStatus != [LCSaveData getOnlineVersion]) { [LCSaveData saveOnlineVersion:onlineStatus]; /// 线上版本状态改变,发送通知 [[NSNotificationCenter defaultCenter] postNotificationName:@"OnlineVersion" object:nil userInfo:nil]; } } } failure:^(NSError *error) { }]; } - (void)requestProvinceCity{ @weakify(self) [LCHttpHelper requestWithURLString:ProvinceList parameters:@{} needToken:NO type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { NSMutableArray *tempArr = [NSMutableArray arrayWithArray:[dict arrayValueForKey:@"data" defaultValue:@[]]]; [tempArr insertObject:@{ @"child" : @[@{ @"id" : @(0), @"name" : @"保密", @"parent_id" : @(0) }], @"id" : @(0), @"name" : @"保密", @"parent_id" : @(0) } atIndex:0]; self.provinceCityArr = tempArr.mutableCopy; [OCUserDefaults setObject:self.provinceCityArr?:@[] forKey:kPROVINCE_CITY_ARR]; [OCUserDefaults synchronize]; } } failure:^(NSError *error) { }]; } - (void)requestCityCode{ @weakify(self) [LCHttpHelper requestWithURLString:CityList parameters:@{} needToken:NO type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { self.cityCodeDic = [dict dictionaryValueForKey:@"data" defaultValue:@{}]; [OCUserDefaults setObject:self.cityCodeDic?:@{} forKey:kCITY_CODE_DIC]; [OCUserDefaults synchronize]; } } failure:^(NSError *error) { }]; } - (NSString*)onTvWebUrl{ NSString *url = [OCUserDefaults objectForKey:kON_TV_WEB_URL]; return url; } - (NSString*)increaseStarRatingUrl{ NSString *url = [OCUserDefaults objectForKey:kINCREASE_STAR_RATING_URL]; return url; } - (NSString*)helpUrl{ NSString *url = [OCUserDefaults objectForKey:kHELP_URL]; return url; } - (NSString*)rechargeAgreementUrl{ NSString *url = [OCUserDefaults objectForKey:kRECHARGE_AGREEMENT_URL]; return url; } - (NSString*)minorProtectionProgramUrl{ NSString *url = [OCUserDefaults objectForKey:kMINOR_PROTECTION_PROGRAM_URL]; return url; } - (void)getInviteCode:(void(^)(NSString *code))handler{ [[OpenInstallSDK defaultManager] getInstallParmsWithTimeoutInterval:10 completed:^(OpeninstallData * _Nullable appData) { NSLog(@"OpenInstallSDK:\n动态参数:%@;\n渠道编号:%@",appData.data,appData.channelCode); if (!OCDictionaryIsEmpty(appData.data)) { //{"invite_code":"489617","-pb-watch-id-":"7837529686561188128"} NSString *inviteCode = [appData.data stringValueForKey:@"invite_code" defaultValue:@""]; handler(inviteCode?:@""); }else{ handler(@""); } }]; } @end