From e5407dea36b53eb9f2ad1bd2d4d8f824cca6d703 Mon Sep 17 00:00:00 2001 From: fengshuo <963787902@qq.com> Date: Tue, 3 Jan 2023 15:48:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98h5=E4=B8=AD=E7=9A=84=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=88=B0=E6=9C=AC=E5=9C=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xplan-ios/Main/XPWebViewController.m | 30 ++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/xplan-ios/Main/XPWebViewController.m b/xplan-ios/Main/XPWebViewController.m index 306636eb..40547b76 100644 --- a/xplan-ios/Main/XPWebViewController.m +++ b/xplan-ios/Main/XPWebViewController.m @@ -21,6 +21,7 @@ #import "XPMineUserInfoViewController.h" #import "XPMineRechargeViewController.h" #import "NSMutableDictionary+Saft.h" +#import "Base64.h" ///vc #import "XPMineDressUpViewController.h" #import "XPDressUpShopViewController.h" @@ -96,6 +97,7 @@ NSString * const kJumpAppointPage = @"jumpAppointPage"; NSString * const kJSOpenRoom = @"openRoom"; NSString * const kJSOpenRoomForGiftId = @"openRoomForGiftId"; NSString * const kProhibitRightSlip = @"prohibitRightSlip"; +NSString * const kSaveBase64Image = @"saveBase64Image"; @implementation XPWebViewController @@ -342,12 +344,34 @@ NSString * const kProhibitRightSlip = @"prohibitRightSlip"; }); } - } + } else if([message.name isEqualToString:kSaveBase64Image]) { + NSString * base64 = message.body; + NSArray * array = [base64 componentsSeparatedByString:@","]; + if(array.count > 1) { + NSData * data = [Base64 decode:array[1]]; + UIImage * image = [UIImage imageWithData:data]; + UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (__bridge void *)self); + } + } } }]; } -#pragma mark - private method + +#pragma mark - private metho +- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ + if (error == nil) { + NSString * jsStrUrl = [NSString stringWithFormat:@"saveBase64ImageCallback(\"%@\")", @"1"]; + [self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } else { + NSString * jsStrUrl = [NSString stringWithFormat:@"saveBase64ImageCallback(\"%@\")", @"0"]; + [self.webview evaluateJavaScript:jsStrUrl completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } +} - (void)handleRouterType:(NSInteger)skyType message:(WKScriptMessage *)message { NSDictionary *bodyDict; if ([message.body isKindOfClass:[NSDictionary class]]) { @@ -657,6 +681,8 @@ NSString * const kProhibitRightSlip = @"prohibitRightSlip"; [_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenRoomForGiftId]; ///禁用侧滑手势 [_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kProhibitRightSlip]; +///保存图片到本地 + [_userContentController addScriptMessageHandler:weakScriptMessageDelegate name:kSaveBase64Image]; } return _userContentController; }