Files
featherVoice/QXLive/Other/AppDelegate.m
2025-08-14 09:40:25 +08:00

240 lines
9.1 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// AppDelegate.m
// QXLive
//
// Created by 启星 on 2025/4/24.
//
#import "AppDelegate.h"
#import "AppDelegate+Login.h"
#import "QXFillUserInfoViewController.h"
#import "AvoidCrash.h"
#import <WXApi.h>
#import <Bugly/Bugly.h>
#import <AlipaySDK/AlipaySDK.h>
#import <TIMPush/TIMPushManager.h>
#import <SDWebImageWebPCoder/SDWebImageWebPCoder.h>
#import "QXAppStartViewController.h"
#if DEBUG
#import <LLDebugTool.h>
#endif
@interface AppDelegate ()<WXApiDelegate>
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[QXConfig defaultConfig];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
QXAppStartViewController *startVC = [[QXAppStartViewController alloc] init];
self.window.rootViewController = startVC;
[Bugly startWithAppId:@"38d154fc5f"];
SDImageWebPCoder *webPCoder = [SDImageWebPCoder sharedCoder];
[[SDImageCodersManager sharedManager] addCoder:webPCoder];
[self configThirdPartLogin];
#if DEBUG
[[LLDebugTool sharedTool] startWorking];
#endif
[self crash];
[self.window makeKeyAndVisible];
return YES;
}
-(void)crash{
NSArray *noneSelClassStrings = @[
@"NSNull",
@"NSNumber",
@"NSString",
@"NSDictionary",
@"NSArray"
];
[AvoidCrash setupNoneSelClassStringsArr:noneSelClassStrings];
[AvoidCrash becomeEffective];
}
-(void)changeRootViewControllerIsTabbar{
if ([QXGlobal shareGlobal].isLogin && [[QXGlobal shareGlobal].loginModel.sex isEqualToString:@"0"]) {
QXFillUserInfoViewController *vc = [[QXFillUserInfoViewController alloc] init];
self.window.rootViewController = vc;
}else{
self.tabbarVC = [[QXTabbarController alloc] init];
QXBaseNavigationController *na = [[QXBaseNavigationController alloc] initWithRootViewController:self.tabbarVC];
na.navigationBarHidden = YES;
self.window.rootViewController = na;
}
}
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
BOOL result =[WXApi handleOpenUniversalLink:userActivity delegate:self];
return result;
}
// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options{
if ([url.host isEqualToString:@"safepay"]) {
// 支付跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
NSString *result = [NSString stringWithFormat:@"%@",resultDic[@"memo"]];
NSString *resultStatus = [NSString stringWithFormat:@"%@",resultDic[@"resultStatus"]];
if (resultStatus.intValue == 9000) {
showToast(@"支付成功");
[[NSNotificationCenter defaultCenter] postNotificationName:noticeAlipayResult object:nil];
}else{
showToast(result);
}
}];
// // 授权跳转支付宝钱包进行支付,处理支付结果
// [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
// NSLog(@"result = %@",resultDic);
// // 解析 auth code
// NSString *result = resultDic[@"result"];
// NSString *authCode = nil;
// if (result.length>0) {
// NSArray *resultArr = [result componentsSeparatedByString:@"&"];
// for (NSString *subResult in resultArr) {
// if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
// authCode = [subResult substringFromIndex:10];
// break;
// }
// }
// }
// NSLog(@"授权结果 authCode = %@", authCode?:@"");
// [[NSNotificationCenter defaultCenter]postNotificationName:@"RELOADBLANCE" object:nil];
// }];
[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
QXLOG(@"auth = %@",resultDic);
NSString *result = resultDic[@"result"];
NSString *authCode = nil;
if (result.length>0) {
NSArray *resultArr = [result componentsSeparatedByString:@"&"];
for (NSString *subResult in resultArr) {
if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
authCode = [subResult substringFromIndex:10];
break;
}
}
}
NSLog(@"授权结果 authCode = %@", authCode?:@"");
}];
}else if ([url.host isEqualToString:@"pay"]){
return [WXApi handleOpenURL:url delegate:self];
}else if ([url.host isEqualToString:@"oauth"]){
return [WXApi handleOpenURL:url delegate:self];
}else{
return [WXApi handleOpenURL:url delegate:self];
}
return YES;
}
//- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
//{
// if ([url.host isEqualToString:@"safepay"]) {
// // 支付跳转支付宝钱包进行支付,处理支付结果
// [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
// NSLog(@"result = %@",resultDic);
// }];
//
// // 授权跳转支付宝钱包进行支付,处理支付结果
// [[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
// NSLog(@"result = %@",resultDic);
// // 解析 auth code
// NSString *result = resultDic[@"result"];
// NSString *authCode = nil;
// if (result.length>0) {
// NSArray *resultArr = [result componentsSeparatedByString:@"&"];
// for (NSString *subResult in resultArr) {
// if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
// authCode = [subResult substringFromIndex:10];
// break;
// }
// }
// }
// NSLog(@"授权结果 authCode = %@", authCode?:@"");
// }];
// }
// return YES;
//}
-(void)onResp:(BaseResp *)resp
{
if ([resp isKindOfClass:[PayResp class]])
{
PayResp *response = (PayResp *)resp;
switch (response.errCode)
{
case WXSuccess:
//服务器端查询支付通知或查询API返回的结果再提示成功
NSLog(@"支付成功");
showToast(QXText(@"支付成功"));
// [[NSNotificationCenter defaultCenter] postNotificationName:@"wxapiPaySuccess" object:nil userInfo:nil];
break;
case WXErrCodeUserCancel:
//服务器端查询支付通知或查询API返回的结果再提示成功
//交易取消
showToast(QXText(@"取消支付"));
break;
default:
NSLog(@"支付失败, retcode=%d",resp.errCode);
showToast(QXText(@"支付失败"));
break;
}
}else if([resp isKindOfClass:[SendAuthResp class]]){
SendAuthResp *response = (SendAuthResp *)resp;
[[NSNotificationCenter defaultCenter] postNotificationName:noticeWeChatLogin object:response];
}
}
/// 设备转向
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
// ZFInterfaceOrientationMask orientationMask = [ZFLandscapeRotationManager supportedInterfaceOrientationsForWindow:window];
// if (orientationMask != ZFInterfaceOrientationMaskUnknow) {
// return (UIInterfaceOrientationMask)orientationMask;
// }
/// 这里是非播放器VC支持的方向
if (_allowRotate == 1) {
return UIInterfaceOrientationMaskLandscapeRight;
}else{
return UIInterfaceOrientationMaskPortrait;
}
}
// 返回是否支持设备自动旋转
- (BOOL)shouldAutorotate
{
if (_allowRotate == 1) {
return YES;
}
return NO;
}
#pragma mark - TIMPush
#pragma mark - TIMPush
- (int)businessID {
//上一步控制台给的证书ID如 1234567
return AppPushId;
}
//- (NSString *)applicationGroupID {
// //AppGroup ID
// return kTIMPushAppGroupKey;
//}
- (BOOL)onRemoteNotificationReceived:(NSString *)notice {
// custom navigate
return NO;
}
#pragma mark - TIMPushListener
- (void)onNotificationClicked:(NSString *)ext {
// 获取 ext 自定义跳转
}
@end