瀏覽代碼

新增复制插件

liuql6 5 年之前
父節點
當前提交
8d43b77345

+ 8 - 0
WadeMobileFunc/WadeMobileFunc.xcodeproj/project.pbxproj

@ -88,6 +88,8 @@
88 88
		0AE1E07A1C7EABA700FCCD24 /* WDFAFNetworkingUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AE1E0761C7EABA700FCCD24 /* WDFAFNetworkingUtil.m */; };
89 89
		0AE1E0891C7EE95900FCCD24 /* WadeMobileFunc.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2DE1AD41B42DD9500762141 /* WadeMobileFunc.framework */; };
90 90
		0AE1E0901C7EE97100FCCD24 /* DatabaseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AE1E08F1C7EE97100FCCD24 /* DatabaseTest.m */; };
91
		B2074DA724AC814D00E6E924 /* IPUClipBoardPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = B2074DA524AC814C00E6E924 /* IPUClipBoardPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
92
		B2074DA824AC814D00E6E924 /* IPUClipBoardPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = B2074DA624AC814D00E6E924 /* IPUClipBoardPlugin.m */; };
91 93
		B21A33FC20B516A700920072 /* WDFSystemPermissionPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = B21A33F420B516A700920072 /* WDFSystemPermissionPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
92 94
		B21A340020B516A700920072 /* WDFSystemPermissionPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = B21A33F820B516A700920072 /* WDFSystemPermissionPlugin.m */; };
93 95
		B21FCA222341A244001F47F3 /* card_back.png in Resources */ = {isa = PBXBuildFile; fileRef = B21FCA1C2341A243001F47F3 /* card_back.png */; };
@ -215,6 +217,8 @@
215 217
		0AE1E0761C7EABA700FCCD24 /* WDFAFNetworkingUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WDFAFNetworkingUtil.m; sourceTree = "<group>"; };
216 218
		0AE1E0841C7EE95900FCCD24 /* WadeMobileFuncTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WadeMobileFuncTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
217 219
		0AE1E08F1C7EE97100FCCD24 /* DatabaseTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DatabaseTest.m; sourceTree = "<group>"; };
220
		B2074DA524AC814C00E6E924 /* IPUClipBoardPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IPUClipBoardPlugin.h; sourceTree = "<group>"; };
221
		B2074DA624AC814D00E6E924 /* IPUClipBoardPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IPUClipBoardPlugin.m; sourceTree = "<group>"; };
218 222
		B21A33F420B516A700920072 /* WDFSystemPermissionPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WDFSystemPermissionPlugin.h; sourceTree = "<group>"; };
219 223
		B21A33F820B516A700920072 /* WDFSystemPermissionPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WDFSystemPermissionPlugin.m; sourceTree = "<group>"; };
220 224
		B21FCA162341A0B7001F47F3 /* WadeMobileFuncBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WadeMobileFuncBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
@ -451,6 +455,8 @@
451 455
				B21A33F820B516A700920072 /* WDFSystemPermissionPlugin.m */,
452 456
				B2ADA4272186DEDB00F0E722 /* IpuAuthentication.h */,
453 457
				B2ADA4282186DEDB00F0E722 /* IpuAuthentication.m */,
458
				B2074DA524AC814C00E6E924 /* IPUClipBoardPlugin.h */,
459
				B2074DA624AC814D00E6E924 /* IPUClipBoardPlugin.m */,
454 460
				E2DE1AD71B42DD9500762141 /* Supporting Files */,
455 461
			);
456 462
			path = WadeMobileFunc;
@ -554,6 +560,7 @@
554 560
				B2E8BEBA2175D89700A06A13 /* WDFCustomCamera.h in Headers */,
555 561
				B2E8BEB92175D89700A06A13 /* UIImage+Rotate.h in Headers */,
556 562
				B2E8BEC02175D89700A06A13 /* WDFCamera.h in Headers */,
563
				B2074DA724AC814D00E6E924 /* IPUClipBoardPlugin.h in Headers */,
557 564
				0432C2782421C10700659E92 /* WDFScreenCapture.h in Headers */,
558 565
				0429A26121805228003CEE83 /* WDFResourceVersion.h in Headers */,
559 566
				B2E8BEBC2175D89700A06A13 /* CustomCameraViewController.h in Headers */,
@ -812,6 +819,7 @@
812 819
				B2E8BEBE2175D89700A06A13 /* UIImage+Rotate.m in Sources */,
813 820
				01FC207E2007700C00FA8B40 /* WDFSocial.m in Sources */,
814 821
				B2E8BEC12175D89700A06A13 /* WDFImagePickerController.m in Sources */,
822
				B2074DA824AC814D00E6E924 /* IPUClipBoardPlugin.m in Sources */,
815 823
				B2E8BEC32175D89700A06A13 /* WDFCamera.m in Sources */,
816 824
				04E763A123FA5F6B0060C203 /* CLLockLabel.m in Sources */,
817 825
				B2E8BEBD2175D89700A06A13 /* WDFCustomCamera.m in Sources */,

+ 4 - 4
WadeMobileFunc/WadeMobileFunc.xcodeproj/xcuserdata/benny.xcuserdatad/xcschemes/xcschememanagement.plist

@ -7,26 +7,26 @@
7 7
		<key>WadeMobileFunc.xcscheme</key>
8 8
		<dict>
9 9
			<key>orderHint</key>
10
			<integer>1</integer>
10
			<integer>0</integer>
11 11
		</dict>
12 12
		<key>WadeMobileFunc4Appstore.xcscheme</key>
13 13
		<dict>
14 14
			<key>isShown</key>
15 15
			<false/>
16 16
			<key>orderHint</key>
17
			<integer>3</integer>
17
			<integer>2</integer>
18 18
		</dict>
19 19
		<key>WadeMobileFuncAggregate.xcscheme</key>
20 20
		<dict>
21 21
			<key>isShown</key>
22 22
			<false/>
23 23
			<key>orderHint</key>
24
			<integer>2</integer>
24
			<integer>1</integer>
25 25
		</dict>
26 26
		<key>WadeMobileFuncBundle.xcscheme_^#shared#^_</key>
27 27
		<dict>
28 28
			<key>orderHint</key>
29
			<integer>6</integer>
29
			<integer>4</integer>
30 30
		</dict>
31 31
	</dict>
32 32
	<key>SuppressBuildableAutocreation</key>

+ 22 - 0
WadeMobileFunc/WadeMobileFunc/IPUClipBoardPlugin.h

@ -0,0 +1,22 @@
1
//
2
//     ***   * * * *  *     *
3
//     *    *     *  *     *
4
//    *    * * * *  *     *
5
//   *    *        *     *
6
// ***   *        * * * *
7
//
8
//  IPUClipBoardPlugin.h
9
//  IPUShow
10
//  Created by Benny (AsiaInfo PRD IPU) on 2020/7/1 10:47.
11
//  Copyright © 2020 Asiainfo. All rights reserved.
12
//
13
        
14
#import <WadeMobile/WadeMobile.h>
15
16
@interface IPUClipBoardPlugin : WDPlugin
17
18
/// 复制文案等内容到剪贴板,结果 -> success:callback("复制内容"), fail: error("Copy Failed")
19
/// @param params [{"type" : "类型:0-text", "content" : "Copied Content"}]
20
- (void)copyContentToClipBoard:(NSArray *)params;
21
22
@end

+ 50 - 0
WadeMobileFunc/WadeMobileFunc/IPUClipBoardPlugin.m

@ -0,0 +1,50 @@
1
//
2
//     ***   * * * *  *     *
3
//     *    *     *  *     *
4
//    *    * * * *  *     *
5
//   *    *        *     *
6
// ***   *        * * * *
7
//
8
//  IPUClipBoardPlugin.m
9
//  IPUShow
10
//  Created by Benny (AsiaInfo PRD IPU) on 2020/7/1 10:47.
11
//  Copyright © 2020 Asiainfo. All rights reserved.
12
//
13
        
14
#import "IPUClipBoardPlugin.h"
15
16
#import <UIKit/UIKit.h>
17
18
@implementation IPUClipBoardPlugin
19
20
- (void)copyContentToClipBoard:(NSArray *)params {
21
    NSAssert(params && params.count, @"参数错误");
22
    
23
    NSDictionary *dict = params[0];
24
    if (![dict isKindOfClass:[NSDictionary class]]) {
25
        dict = [WDJsonHelper toDictionary:(NSString *)dict];
26
    }
27
    
28
    NSAssert([dict isKindOfClass:[NSDictionary class]], @"参数错误");
29
    
30
    BOOL isText = ![dict[@"type"] boolValue];
31
    NSString *content = dict[@"content"]; 
32
    
33
    NSAssert([WDStringUtility isValiteString:content], @"复制内容为空");
34
    
35
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
36
    if (isText) {
37
        // 文字内容
38
        [pasteboard setString:content];
39
        
40
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
41
            if ([content isEqualToString:pasteboard.string]) {
42
                [self callback:content];
43
            } else {
44
                [self error:@"Copy Failed."];
45
            }
46
        });
47
    }
48
}
49
50
@end