// // AppDelegate.m // qingqiyuyin // // Created by bj_szd on 2022/1/18. // #import "AppDelegate.h" #import "SPLaunchVC.h" #import "SATabBarVC.h" #import #import "MLNetWorkHelper.h" #import "BJFloatRoomManager.h" #import "MainNavigationController.h" #import #import #import #import #import #import "TXMicIMService.h" #import "BJAgoraRtmManager.h" #import "AvoidCrash.h" #if DEBUG #import #endif @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self initThird]; [self initOthers]; #if DEBUG [[LLDebugTool sharedTool] startWorking]; #endif self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.backgroundColor = [UIColor whiteColor]; MainNavigationController *nav = [[MainNavigationController alloc] initWithRootViewController:[SPLaunchVC new]]; self.window.rootViewController = nav; [self.window makeKeyAndVisible]; return YES; } - (void)initThird { [Bugly startWithAppId:@"4aae33d1b1"]; //屏蔽masonry警告打印 [[NSUserDefaults standardUserDefaults] setValue:@(NO) forKey:@"_UIConstraintBasedLayoutLogUnsatisfiable"]; // [[BMKLocationAuth sharedInstance] setAgreePrivacy:YES]; // [[BMKLocationAuth sharedInstance] checkPermisionWithKey:Baidu_AK authDelegate:self]; // [CLShanYanSDKManager initWithAppId:SHANYAN_APP_ID complete:nil]; //务必在调用自检函数前注册 [WXApi registerApp:WX_APP_ID universalLink:MOB_Universal_Link]; // [ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) { // [platformsRegister setupWeChatWithAppId:WX_APP_ID appSecret:WX_APP_KEY universalLink:MOB_Universal_Link]; // [platformsRegister setupQQWithAppId:QQ_APP_ID appkey:QQ_APP_KEY enableUniversalLink:YES universalLink:MOB_Universal_Link]; // }]; //全局捕捉数组、字典越界等 [AvoidCrash becomeEffective]; } - (void)initOthers { if (@available(iOS 11.0, *)){ [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever]; } if (@available(iOS 15.0, *)) { [UITableView appearance].sectionHeaderTopPadding = 0; [UITableView appearance].prefetchingEnabled = NO; } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginRefresh) name:kLoginSucessNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kickedOffLineAction) name:TXIMDinghaoNoti object:nil]; } #pragma mark - 用户在别处登录,被挤掉提示 - (void)kickedOffLineAction { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //弹出提示框被挤下线 [[NSNotificationCenter defaultCenter] postNotificationName:@"stopPlayYinyue" object:nil]; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"下线通知" message:@"您的账号在别的设备登录,您已被迫下线" preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { dispatch_async(dispatch_get_main_queue(), ^{ [APPDELEGATE setupLoginViewController]; }); [BJFloatRoomManager.sharedBJFloatRoomManager closeFloatWindow]; // [[RCIMClient sharedRCIMClient] logout]; [BJUserManager clearUserInfo]; [MLRoomInformationManager clearUserInfo]; }]]; // 由于它是一个控制器 直接modal出来就好了 [self.window.rootViewController presentViewController:alertController animated:YES completion:nil]; }); } #pragma mark - 登录后链接融云 - (void)loginRefresh { //连接腾讯IM [[TXMicIMService sharedService] initTXIMWithAppID:[GVUSER.tencentyun_im_appid intValue] userID:BJUserManager.userInfo.uid userSig:BJUserManager.userInfo.user_sig]; // //链接融云 // [[RCMicAppService sharedService] configUserEnvironment:BJUserManager.userInfo]; __weak typeof(self) weakSelf = self; dispatch_async(dispatch_get_main_queue(), ^{ SATabBarVC *mainVC = SATabBarVC.sharedSATabBarVC; weakSelf.window.rootViewController = mainVC; }); } //登录页面 -(void)setupLoginViewController{ [BJUserManager clearUserInfo]; [[BJAgoraRtmManager shared] logoutAndLeaveChannel]; // [[RCIMClient sharedRCIMClient] logout]; [UIViewController.currentViewController.navigationController popToRootViewControllerAnimated:YES]; SATabBarVC.sharedSATabBarVC.selectedIndex = 0; if ([UIViewController.currentViewController isKindOfClass:SPLoginVC.class]) { return; } // if ([UIViewController.currentViewController isKindOfClass:MH_ForgetVC.class]) { // return; // } SPLoginVC *vc = [[SPLoginVC alloc] init]; MainNavigationController *navVC = [[MainNavigationController alloc] initWithRootViewController:vc]; self.window.rootViewController = navVC; } #pragma mark ----------------支付宝支付 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { //跳转支付宝钱包进行支付,处理支付结果 if ([url.host isEqualToString:@"safepay"]) { [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:nil]; }else{ [WXApi handleOpenURL:url delegate:self]; } return YES; } -(void)onResp:(BaseResp*)resp{ if ([resp isKindOfClass:[PayResp class]]){ PayResp *response=(PayResp*)resp; switch(response.errCode){ case WXSuccess: [[NSNotificationCenter defaultCenter] postNotificationName:@"wechatPayResult" object:@"1"]; break; case WXErrCodeUserCancel: [[NSNotificationCenter defaultCenter] postNotificationName:@"wechatPayResult" object:@"2"]; break; default: [[NSNotificationCenter defaultCenter] postNotificationName:@"wechatPayResult" object:@"3"]; break; } } } @end