Explorar el Código

新增截屏插件

liufl5 %!s(int64=5) %!d(string=hace) años
padre
commit
a0da948d8c

+ 21 - 0
WadeMobileFunc/WadeMobileFunc/WDFScreenCapture.h

@ -0,0 +1,21 @@
1
//
2
//  WDFScreenCapture.h
3
//  WadeMobileFunc
4
//
5
//  Created by Mac on 2019/8/6.
6
//  Copyright © 2019 asiainfo. All rights reserved.
7
//
8
9
#import <WadeMobile/WadeMobile.h>
10
11
NS_ASSUME_NONNULL_BEGIN
12
13
@interface WDFScreenCapture : WDPlugin
14
15
    -(void)captureScreen:(NSArray *)params;
16
    -(void)executeScreenCapture:(NSArray *)params;
17
    
18
19
@end
20
21
NS_ASSUME_NONNULL_END

+ 45 - 0
WadeMobileFunc/WadeMobileFunc/WDFScreenCapture.m

@ -0,0 +1,45 @@
1
//
2
//  WDFScreenCapture.m
3
//  WadeMobileFunc
4
//
5
//  Created by Mac on 2019/8/6.
6
//  Copyright © 2019 asiainfo. All rights reserved.
7
//
8
9
#import "WDFScreenCapture.h"
10
11
@implementation WDFScreenCapture
12
    
13
    -(void)captureScreen:(NSArray *)params{
14
        BOOL isCapture = false;
15
        if (params.count>0) {
16
            if (params[0]==[NSNull null]) {
17
                isCapture = false;
18
            }else{
19
                isCapture = [params[0] boolValue];
20
            }
21
        }
22
        if (isCapture) {//允许截屏
23
            
24
        }else{//禁止截屏
25
            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenShot) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
26
        }
27
    }
28
    
29
    -(void)executeScreenCapture:(NSArray *)params{
30
        UIImage *image = [self screenShot];
31
        NSString* path = [WDUtility createDirInDocument:@"images" withFileName:nil withPathExtension:@"jpg"];
32
        NSData * data = UIImageJPEGRepresentation(image, 1.0);
33
        [data writeToFile:path atomically:YES];
34
        [self callback:path];
35
    }
36
    - (UIImage *)screenShot {
37
        UIViewController *vc = [self getViewController];
38
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(SCREEN_WIDTH, SCREENH_HEIGHT), NO, 0.0);
39
        [vc.view.layer renderInContext:UIGraphicsGetCurrentContext()];
40
        UIImage *screenShotImage = UIGraphicsGetImageFromCurrentImageContext();
41
        UIGraphicsEndImageContext();
42
        return screenShotImage;
43
    }
44
45
@end