1、变更推送为阿里云推,清除云信IM以及推送内容;

2、消息页面全新改版;
3、部分微小Bug修复
This commit is contained in:
wbzhan
2019-05-24 19:21:31 +08:00
parent c586949438
commit 25c051d5f1
1544 changed files with 17136 additions and 78376 deletions
+9 -9
View File
@@ -9,7 +9,7 @@
#import "IfishDatabaseManager.h"
#import "FMDatabase.h"
#import "IfishDBHelper.h"
#import "PushmassageModel.h"
#import "PushmessageModel.h"
#import "IfishInformations.h"
@implementation IfishDatabaseManager
{
@@ -138,8 +138,8 @@ static NSString * const InformationsTableName = @"INFORMATIONSTABLE";
[queue inDatabase:^(FMDatabase *db) {
//必须为对象类型
PushmassageModel*massagemodel=(PushmassageModel*)model;
BOOL isSccess = [db executeUpdate:sql,massagemodel.massageType,massagemodel.massageTitle,massagemodel.massageBody,massagemodel.createTime,massagemodel.deviceId,massagemodel.showName,massagemodel.userId];
PushmessageModel*massagemodel=(PushmessageModel*)model;
BOOL isSccess = [db executeUpdate:sql,massagemodel.pushType,massagemodel.pushTitle,massagemodel.pushContext,massagemodel.createTime,massagemodel.deviceId,massagemodel.showName,massagemodel.userId];
if (!isSccess) {
NSLog(@"insert error:%@",db.lastErrorMessage);
@@ -155,8 +155,8 @@ static NSString * const InformationsTableName = @"INFORMATIONSTABLE";
FMDatabaseQueue *queue = [IfishDBHelper getDatabaseQueue];
[queue inDatabase:^(FMDatabase *db) {
//必须为对象类型
PushmassageModel*massagemodel=(PushmassageModel*)model;
BOOL isSccess = [db executeUpdate:sql,massagemodel.massageType,massagemodel.massageTitle];
PushmessageModel*massagemodel=(PushmessageModel*)model;
BOOL isSccess = [db executeUpdate:sql,massagemodel.pushType,massagemodel.pushTitle];
if (!isSccess) {
NSLog(@"delete error:%@",db.lastErrorMessage);
@@ -174,10 +174,10 @@ static NSString * const InformationsTableName = @"INFORMATIONSTABLE";
NSString *sql=@"SELECT * FROM pushtable";
FMResultSet*rs=[db executeQuery:sql];
while ([rs next]) {
PushmassageModel*massagemodel=[[PushmassageModel alloc] init];
massagemodel.massageType=[rs stringForColumn:@"massageType"];
massagemodel.massageTitle=[rs stringForColumn:@"massageTitle"];
massagemodel.massageBody=[rs stringForColumn:@"massageBody"];
PushmessageModel*massagemodel=[[PushmessageModel alloc] init];
massagemodel.pushType=[rs stringForColumn:@"pushType"];
massagemodel.pushTitle=[rs stringForColumn:@"pushTitle"];
massagemodel.pushContext=[rs stringForColumn:@"pushContext"];
massagemodel.createTime =[rs stringForColumn:@"createTime"];
massagemodel.deviceId = [rs stringForColumn:@"deviceId"];
massagemodel.showName = [rs stringForColumn:@"showName"];
-1
View File
@@ -77,7 +77,6 @@ alpha:1.0]
#define MAINSCREEN_SCALE [[UIScreen mainScreen] scale]
#define KWidth_Scale [UIScreen mainScreen].bounds.size.width/375.0f
#import "NTESGlobalMacro.h"
#import "MyControl.h"
#import "DataCenter.h"
#import "UserModel.h"
@@ -21,12 +21,37 @@
//用户ID 不能存在
#define IFISH_USERIDNONE @"207"
typedef void (^WBCallBackSuccess)(NSDictionary *successDic);//正确返回
typedef void (^WBCallBackFailed)(NSDictionary *errorDic);//连接服务器成功,返回其他错误码
typedef void(^WBConnectServiceFailed)(void);//连接服务器失败
typedef NS_ENUM(NSUInteger, AnalyzeType) {
kReqSuccess = 100,// 操作成功
kReqSignError = 100001 ,// sign 错误,需特殊处理
kReqParamaterEmpty = 100010 ,// 参数为空或其他错误
kReqFunctionFail = 100012 ,// 操作失败
kReqParamaterError = 100013,// 参数错误或其他错误
kAccessDenied = 100014,// 禁止访问
kLoginError = 100015 ,// 未登录或登录识别码错误,需特殊处理
};
typedef NS_ENUM(NSInteger, RequestType){
RequestTypePost = 1,
RequestTypeGet = 2
};
#define RESPONSE_CODE @"result" // 0:失败 100:成功 status
#define RESPONSE_MESSAGE @"msg"
#define RESPONSE_DATA @"data"
#define RESPONSE_SUCCESS @"0" //服务器返回的数据成功信息1、成功,-1,异常,0,错误
@interface AFNOHeaderHttpTool : NSObject
+ (AFNOHeaderHttpTool *)sharedInstance;
//POST请求
-(void) postRequestWihtUrl:(NSString *)url
params:(NSDictionary *)params
success:(WBCallBackSuccess)success
failure:(WBCallBackFailed)failure;
/**
* 发送一个请求 无请求头参数
*
@@ -37,13 +62,14 @@ typedef NS_ENUM(NSInteger, RequestType){
* @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block中)
* @param token "userId+timestamp+”ifish8”经MD5加密后生成的口令
*/
+(void) requestWihtMethod:(RequestType)
methodType url : (NSString *)url
params:(NSDictionary *)params
success:(void (^)(id response))success
failure:(void (^)(NSError *err))failure;
/**
* 保存自定义图标
*/
@@ -8,8 +8,83 @@
#import "AFNOHeaderHttpTool.h"
#import "AFNetworking.h"
#import "SVProgressHUD.h"
#define ContentType @"text/html"
@implementation AFNOHeaderHttpTool
- (instancetype)init
{
self = [super init];
if (self) {
// _manager = [AFHTTPSessionManager manager];
// //请求超时时间为15秒
// _manager.requestSerializer.timeoutInterval = 15;
// _manager.requestSerializer = [AFJSONRequestSerializer serializer];
// _manager.responseSerializer = [AFJSONResponseSerializer serializer];
// // // 内容类型
// _manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil];
}
return self;
}
+ (AFNOHeaderHttpTool *)sharedInstance
{
static AFNOHeaderHttpTool *_instance = nil;
static dispatch_once_t once;
dispatch_once(&once, ^{
_instance = [[self alloc] init];
});
return _instance;
}
//POST请求
-(void) postRequestWihtUrl:(NSString *)url
params:(NSDictionary *)params
success:(WBCallBackSuccess)success
failure:(WBCallBackFailed)failure{
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager manager];
//此类中接口 无安全校验
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
//POST请求
[manager POST:url parameters:params
success:^(AFHTTPRequestOperation* operation, id responseObject) {
[SVProgressHUD dismissWithDelay:0.3];
id result=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"获取数据 resalut = %@",result);
if ([result isKindOfClass:[NSDictionary class]]) {
// NSString *resCode = [NSString stringWithFormat:@"%@",[result objectForKey:RESPONSE_CODE]];//状态码
// //返回数据正确 ,则解析到数据接收内容
// if([resCode integerValue]==kReqSuccess)
// {
/**
获取后台给定的正确码100,做逻辑处理
*/
dispatch_async(dispatch_get_main_queue(), ^{
//直接显示成功信息
success(result);
});
// }else{
// /*
// 获取后台给定的其他错误码,做逻辑处理(暂无数据等)
// */
// dispatch_async(dispatch_get_main_queue(), ^{
// failure(result);
// });
// }
}else{
NSLog(@"json格式错误");
}
} failure:^(AFHTTPRequestOperation* operation, NSError* error) {
//反馈错误信息(网络连接失败(服务器关停)等信息)
if (error) {
[SVProgressHUD showInfoWithStatus:@"请求数据失败"];
}
dispatch_async(dispatch_get_main_queue(), ^{
//错误信息展示(其他相关错误处理在具体的类里进行)
failure([self getErrorDict:error]);
});
}];
}
+(void) requestWihtMethod:(RequestType)
methodType url : (NSString *)url
params:(NSDictionary *)params
@@ -22,7 +97,6 @@ methodType url : (NSString *)url
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager manager];
//此类中接口 无安全校验
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
//#ifdef ContentType
@@ -294,5 +368,11 @@ methodType url : (NSString *)url
}
-(NSDictionary *)getErrorDict:( NSError *)error
{
NSMutableDictionary * resalut = InitObject(NSMutableDictionary);
[resalut setObject:[NSString stringWithFormat:@"%ld",error.code] forKey:RESPONSE_CODE];
[resalut setObject:error.domain forKey:RESPONSE_MESSAGE];
return resalut;
}
@end
@@ -18,8 +18,6 @@
#import "UDManager.h"
//
#import "CertificationShopModel.h"
#import "NTESLoginManager.h"
#import "NTESService.h"
#import "IfishUserDefaultHelper.h"
#import "IfishUserDataUnity.h"
@implementation IFISHHttpTool
@@ -7,9 +7,7 @@
//
#import "IfishUserDataUnity.h"
#import "NTESLoginManager.h"
#import "SVProgressHUD.h"
#import "NTESService.h"
#import "IfishMianTabViewController.h"
#import "IfishUserDefaultHelper.h"
#import "NSObject+LBLaunchImage.h"
@@ -57,51 +55,10 @@
NSLog(@"userDic:%@",userDic);
NSLog(@"登录成功");
//登陆云信
NSString *acount = [NSString stringWithFormat:@"%@",model.userId];
[self doLoginWithAccount:acount addToken:model.neteaseToken];
[self setAppTabRoot];
}
#pragma mark -登陆云信服务器
- (void)doLoginWithAccount:(NSString *)acount addToken:(NSString *)token
{
NSString *loginAccount = acount;
NSString *loginToken = token;
//NIM SDK 只提供消息通道,并不依赖用户业务逻辑,开发者需要为每个APP用户指定一个NIM帐号,NIM只负责验证NIM的帐号即可(在服务器端集成)
//用户APP的帐号体系和 NIM SDK 并没有直接关系
//DEMO中使用 username 作为 NIM 的account md5(password) 作为 token
//开发者需要根据自己的实际情况配置自身用户系统和 NIM 用户系统的关系
[[[NIMSDK sharedSDK] loginManager] login:loginAccount
token:loginToken
completion:^(NSError *error) {
[SVProgressHUD dismiss];
if (error == nil)
{
LoginData *sdkData = [[LoginData alloc] init];
sdkData.account = loginAccount;
sdkData.token = loginToken;
[[NTESLoginManager sharedManager] setCurrentLoginData:sdkData];
[[NTESServiceManager sharedManager] start];
//NSInteger count = [[[NIMSDK sharedSDK] conversationManager] allUnreadCount];
// NSLog(@"count%d",count);
[[NSNotificationCenter defaultCenter] postNotificationName:IFISHIMLOGINSUCSESS object:nil];
}
else
{
NSString *toast = [NSString stringWithFormat:@"登录失败 code: %zd",error.code];
[[UIApplication sharedApplication].keyWindow makeToast:toast ];
}
}];
}
#pragma mark - 自动登录
-(void)userAutologinSuccsess:(NSDictionary *)dataDic
@@ -122,38 +79,6 @@
[[IfishUserObsever sharedInstance] showLevelUpWith:gradeNum];
[IfishUserDefaultHelper chageLevlelGrad:gradeNum];
}
//登陆云信 走自动登录
LoginData *data = [[NTESLoginManager sharedManager] currentLoginData];
NSString *account = [data account];
NSString *token = [data token];
//如果有缓存用户名密码推荐使用自动登录
if ([account length] && [token length])
{
//自动登录
//非强制模式
//[[[NIMSDK sharedSDK] loginManager] autoLogin:account
// token:token];
//这里我们使用强制模式 即不考虑安全登录 多设备同帐号登陆
NIMAutoLoginData * LoginData = [[NIMAutoLoginData alloc] init];
LoginData.account = account;
LoginData.token = token;
//强制模式 强制模式下的自动登录,服务器将不检查当前登录设备是否为上一次登录设备,安全性较低。但相对的更加方便,适合 IM 仅作为辅助模块的 App
LoginData.forcedMode = YES;
[[[NIMSDK sharedSDK] loginManager] autoLogin:LoginData];
[[NTESServiceManager sharedManager] start];
}
else
{ //注册登录
NSString *acount = [NSString stringWithFormat:@"%@",model.userId];
[self doLoginWithAccount:acount addToken:model.neteaseToken];
}
//[self startLounchImg];
//完成登陆验证开始 广告页倒计时
[self setAdViewVC];
@@ -63,7 +63,7 @@ static char overlayKey;
-(void)resetBackgroundImage{
[self setBackgroundImage:[UIImage imageNamed:@"blackbar.png"] forBarMetrics:UIBarMetricsDefault];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}
@@ -71,7 +71,7 @@ static char overlayKey;
{
[self setBackgroundImage:[UIImage imageNamed:@"blackbar_white.png"] forBarMetrics:UIBarMetricsDefault];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}