BBASMPhotoAdapterProtocol.h
5.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//
// BBASMPhotoAdapterProtocol.h
// SWAN
//
// Created by baidu on 2018/9/21.
// Copyright © 2018 baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBASMAdapterBaseImplement.h"
/** pickerMode
* chooseImage端能力pickerMode:BBASMPhotoPickerTypePhoto,
* chooseAlbum端能力在Single下pickerMode:BBASMPhotoPickerTypePhotoOrVideo,
* chooseAlbum端能力在非Single下pickerMode:BBASMPhotoPickerTypePhotoAndVideo
*/
typedef NS_ENUM(NSUInteger, BBASMPhotoPickerType) {
BBASMPhotoPickerTypePhoto, // 只选择Photo
BBASMPhotoPickerTypeVideo, // 只选择Video
BBASMPhotoPickerTypePhotoAndVideo, // 同时选择Photo、Video
BBASMPhotoPickerTypePhotoOrVideo, // Photo、Video二选一
};
@protocol BBASMPhotoPickerInfoProtocol <NSObject>
/// 最大选中数量
@property (nonatomic, assign) NSInteger maxNumber;
/// 是否隐藏相机按钮,chooseAlbum为隐藏,chooseImage视开发者传递的souceType而定
@property (nonatomic, assign) BOOL hideCamera;
/// 相册选择类型
@property (nonatomic, assign) BBASMPhotoPickerType pickerMode;
/// chooseAlbum端能力时,选择视频是否使用原始视频质量,为否则视为视频需要被压缩
@property (nonatomic, assign) BOOL isCompress;
/// 已经选中的assets
@property (nonatomic, strong) NSArray *selectAssets;
@end
@protocol BBASMPhotoAdapterProtocol <NSObject>
@optional
/**
* 该方法即将废弃,请使用chooseMultiMediaInfo:finish:cancel:代替
* @brief 从相册中选择照片或视频
* @param maxNumber 最大选中数量.
* @param pickerMode chooseImage端能力pickerMode:BBASMPhotoPickerTypePhoto,
chooseAlbum端能力在Single下pickerMode:BBASMPhotoPickerTypePhotoOrVideo,
chooseAlbum端能力在非Single下pickerMode:BBASMPhotoPickerTypePhotoAndVideo,
* @param isCompress chooseAlbum端能力时,选择视频是否使用原始视频质量,为否则视为视频需要被压缩
* @param finishBlock 选择成功时的回调,result中为选中的图片和视频,对应的key值为"image_and_video"
* @example
* "image_and_video" = (
* {
* "file_name" = "944a932e48dc0ac877fd64d420e5bf93original.jpg";
* "image_data" = NSData<89504e47 0d0a1a0a>;
* "type" = "image"; // 图片类型
* "index" = 0;
* },
* {
* "path" = "/var/mobile/Containers/Data/Application/2C78BF64-C245-4D36-85B0-D1F3D2DA1E16/Documents/SwanCaches/97fcb1267e61694eef8fc2c344172fa6/tmp/98c4f7a8b0a87d77270cbeb07f706282.mp4"; // 文件路径
* "size" = (long)936401; // 文件大小
* "type" = "video"; // 视频类型
* "duration" = (float)"13.26667";视频时长
* "index" = (long)0;
* }
* )
* @param cancelBlock 用户取消时的回调
*/
+ (void)chooseMultiMedia:(NSInteger)maxNumber
pickerMode:(BBASMPhotoPickerType)pickerMode
isCompress:(BOOL)isCompress
finish:(void (^)(NSDictionary *result))finishBlock
cancel:(void (^)(void))cancelBlock __attribute__((deprecated("该方法即将废弃,请使用 'chooseMultiMediaInfo:finish:cancel:' 替代")));
/**
* @brief 从相册中选择照片或视频
* @param info media选择参数模型,包含maxNumber、hideCamera、pickerMode、isCompress
* @param finishBlock 选择成功时的回调,result中为选中的图片和视频,对应的key值为"image_and_video"
* @param cancelBlock 用户取消时的回调
*/
+ (void)chooseMultiMediaInfo:(id<BBASMPhotoPickerInfoProtocol>)info
finish:(void (^)(NSDictionary *result))finishBlock
cancel:(void (^)(void))cancelBlock;
/**
* @brief 预览图片
* @param imageInfo 预览图片信息
* @return YES 预览成功
* @example
* imageInfo = {
* @"images" : [
* {
* @"url" : @"http://b.bdstatic.com/img/swan-preview-image.jpg",
* @"origin_url" : @"http://b.bdstatic.com/img/swan-preview-image-origin.jpg"
* },
* {
* @"url" : @"http://b.bdstatic.com/img/swan-preview-image2.jpg"
* }
* ],
* @"index" : 0,
* }
*/
+ (BOOL)previewImages:(NSDictionary *)imageInfo;
/// 宿主可自定义小程序webView上图片长按逻辑,不实现的话默认菜单项是"查看图片"、"保存到相册"
/// @param imageInfo 图片信息 imageInfo = { "imageURL" : [NSString],// 图片地址
/// "appID" : [NSString],// 小*程*序appID }
+ (void)handleWebViewLongPressOnImage:(NSDictionary *)imageInfo;
/// 宿主可自定义小程序图片浏览器上图片长按逻辑,不实现的话默认菜单项是"保存到相册"、"分享"
/// @param imageInfo 图片信息 imageInfo = { "imageURL" : [NSString],// 图片地址
/// "appID" : [NSString],// 小*程*序appID }
///
+ (void)handlePhotoBrowserLongPressOnImage:(NSDictionary *)imageInfo;
@end