Commit 1dd9740b02e194524069c796f51f600a4491234c

Authored by iOS-Xiaowen
1 parent 1d81a8e8

no message

CNLiveBUserAgreement/Classes/CNLiveUserAgreementController.m
... ... @@ -9,6 +9,8 @@
9 9 #import "CNLiveUserAgreementController.h"
10 10 #import "QMUIKit.h"
11 11 #import "WKWebViewJavascriptBridge.h"
  12 +#import "QNUploadManager.h"
  13 +#import "QNResponseInfo.h"
12 14  
13 15 #import <AVFoundation/AVCaptureDevice.h>
14 16 #import <AVFoundation/AVMediaFormat.h>
... ... @@ -17,11 +19,15 @@
17 19 #import <CNLiveRequestBastKit/CNLiveNetworking.h>
18 20 #import "CNLiveManager.h"
19 21 #import "CNLiveEnvironment.h"
  22 +#import "CNLiveBusinessTools.h"
  23 +#import "CNLiveTimeTools.h"
  24 +#import "CNLiveCommonCategory.h"
20 25  
21 26 #import "CNLiveWebView.h"
22 27  
23 28 @interface CNLiveUserAgreementController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate,TZImagePickerControllerDelegate>
24 29 @property (nonatomic, strong) NSMutableArray *images;
  30 +@property (nonatomic, strong) NSMutableArray *pics;
25 31  
26 32 @end
27 33  
... ... @@ -226,7 +232,7 @@
226 232 NSMutableDictionary *data = [NSMutableDictionary dictionaryWithDictionary:responseObject[@"data"]];
227 233 NSDictionary *dic = (NSDictionary *)data;
228 234 if (!error && dic[@"token"]) {
229   - // [self QNStartUploadWithtoken:dic[@"token"]];
  235 + [self QNStartUploadWithtoken:dic[@"token"]];
230 236 }else {
231 237 [QMUITips hideAllToastInView:self.view animated:YES];
232 238 [QMUITips showError:error.localizedDescription inView:self.view hideAfterDelay:1.5];
... ... @@ -234,4 +240,109 @@
234 240 }];
235 241 }
236 242  
  243 +// 图片开始上传
  244 +- (void)QNStartUploadWithtoken:(NSString *)token {
  245 + __weak typeof(self) weakSelf = self;
  246 + // 图片视频压缩(LXG)
  247 + [_images enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
  248 + if (!weakSelf.images[idx]) {
  249 + [QMUITips hideAllToastInView:self.view animated:YES];
  250 + [QMUITips showError:@"提交失败" inView:self.view hideAfterDelay:1.5];
  251 + return;
  252 + }
  253 + NSData *zipData = [UIImage zipNSDataWithImage:weakSelf.images[idx]];//非原图压缩
  254 + if (zipData.length > 20*1024.0*1024.0) {//压缩后大于20M
  255 + [QMUITips hideAllToastInView:self.view animated:YES];
  256 + [QMUITips showError:@"图片过大" inView:self.view hideAfterDelay:1.5];
  257 + return;
  258 + }else{
  259 + weakSelf.images[idx] = [UIImage imageWithData:zipData];
  260 + }
  261 +
  262 + }];
  263 +
  264 + NSMutableDictionary *picDict = [NSMutableDictionary dictionaryWithCapacity:_images.count];
  265 + NSMutableArray *keyArr = [NSMutableArray arrayWithCapacity:_images.count];
  266 + self.pics = [NSMutableArray arrayWithCapacity:_images.count];
  267 + for (int i = 0; i < _images.count; i++) {
  268 + @autoreleasepool {
  269 + UIImage *image = _images[i];
  270 + __block NSData *imageData1 = UIImageJPEGRepresentation(image, 1);
  271 + NSString *timeTampStr = [CNLiveTimeTools get13tsRandTimeStr];
  272 + // NSString *mineType = @"image/jpeg";
  273 + NSString *qiniuFileName;
  274 + qiniuFileName = [NSString stringWithFormat:@"%@/%@.jpg",[self getImageBuketkeyFromServerWithExt], timeTampStr];
  275 + QNUploadManager *uploadManager = [QNUploadManager sharedInstanceWithConfiguration:nil];
  276 + [uploadManager putData:imageData1 key:qiniuFileName token:token complete:^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
  277 + if (info.ok) {
  278 + NSString *imageUrl = [NSString stringWithFormat:@"%@%@",API_PhotoUrl,key];
  279 + [picDict setObject:imageUrl ? imageUrl: @"" forKey:@"imageUrl"];
  280 + [picDict setObject:[NSString stringWithFormat:@"%.0f",image.size.width] forKey:@"imageWidth"];
  281 + [picDict setObject:[NSString stringWithFormat:@"%.0f",image.size.height] forKey:@"imageHeight"];
  282 + [keyArr addObject:key];
  283 + NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithDictionary:picDict];
  284 + [self.pics addObject:dict];
  285 +
  286 + if (keyArr.count == weakSelf.images.count) {
  287 + id imagesArrData = @{ @"images": self.pics.copy };
  288 + [weakSelf.images removeAllObjects];
  289 + // 帮助与反馈->产品建议App->h5图片urls
  290 + [self.bridge callHandler:wjjSubmitSuccess data:imagesArrData responseCallback:^(id responseData) {
  291 + NSLog(@"ObjC received response: %@", responseData);
  292 + }];
  293 + }
  294 + } else if (info.broken) {
  295 + [QMUITips hideAllToastInView:self.view animated:YES];
  296 + [QMUITips showError:@"网络连接已断开" inView:self.view hideAfterDelay:1.5];
  297 + return ;
  298 + } else {
  299 + [QMUITips hideAllToastInView:self.view animated:YES];
  300 + [QMUITips showError:info.error.localizedDescription inView:self.view hideAfterDelay:1.5];
  301 + return ;
  302 + }
  303 + } option:nil];
  304 + }
  305 + }
  306 +
  307 +}
  308 +
  309 +// 图片转成base64字符串需要先取出所有空格和换行符
  310 +- (NSString *)removeSpaceAndNewline:(NSString *)str{
  311 + NSString *temp = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
  312 + temp = [temp stringByReplacingOccurrencesOfString:@"\r" withString:@""];
  313 + temp = [temp stringByReplacingOccurrencesOfString:@"\n" withString:@""];
  314 + return temp;
  315 +}
  316 +
  317 +// 图片的BucketKey,BuketKey为文件路径
  318 +- (NSString *)getImageBuketkeyFromServerWithExt{
  319 + NSString *spid = [CNLiveBusinessTools getSpid];
  320 + NSString *imgBucketKey = [NSString stringWithFormat:@"%@/img", spid];
  321 + NSString *yearTime = [CNLiveTimeTools getyyMMdd];
  322 + NSString *bucketKey = [NSString stringWithFormat:@"%@/%@",imgBucketKey,yearTime];
  323 + return bucketKey;
  324 +
  325 +}
  326 +
  327 +- (NSData *)image_TransForm_Data:(UIImage *)image{
  328 + NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
  329 + //几乎是按0.5图片大小就降到原来的一半
  330 + return imageData;
  331 +}
  332 +
  333 +//压缩图片质量
  334 +-(UIImage *)reduceImage:(UIImage *)image percent:(float)percent{
  335 + NSData *imageData = UIImageJPEGRepresentation(image, percent);
  336 + UIImage *newImage = [UIImage imageWithData:imageData];
  337 + return newImage;
  338 +}
  339 +//压缩图片尺寸
  340 +- (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize{
  341 + UIGraphicsBeginImageContext(newSize);
  342 + [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
  343 + UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  344 + UIGraphicsEndImageContext();
  345 + return newImage;
  346 +}
  347 +
237 348 @end
... ...
Example/CNLiveBUserAgreement/CNLIVEViewController.m
... ... @@ -32,7 +32,7 @@
32 32 }
33 33  
34 34 - (void)testButtonClicked {
35   - [CNLiveUserAgreementManager jumpToAgreementH5WithType:CNLiveUserAgreementComplaints];
  35 + [CNLiveUserAgreementManager jumpToAgreementH5WithType:CNLiveUserAgreementHelp];
36 36  
37 37 }
38 38  
... ...