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
/*
* @author lsy
* @date 2019-09-09
**/
import 'package:flutter/foundation.dart';
import 'package:flutter/src/services/platform_channel.dart';
Map<String, List<ScanImageItem>> changData(Map images) {
Map<String, List<ScanImageItem>> newMap = new Map();
images.forEach((k, v) {
List<ScanImageItem> tempList = new List();
for (var item in v) {
ScanImageItem scanImageItem = new ScanImageItem();
scanImageItem.path = item["path"] ?? "";
scanImageItem.size = item["size"] ?? 0;
scanImageItem.realPath = item["realPath"] ?? "";
scanImageItem.isVideo = item["isVideo"] == "T" ? true : false;
scanImageItem.during = item["during"] ?? "0";
scanImageItem.dataToken =
item["dataToken"] == null ? 0 : int.parse(item["dataToken"]);
tempList.add(scanImageItem);
}
newMap.putIfAbsent(k, () => tempList);
});
return newMap;
}
class ScanImagePlugn {
static Future<Map<String, List<ScanImageItem>>> scanImages(
MethodChannel channel) async {
var images = await channel.invokeMapMethod("scan_image_picker");
return Future.value(compute(changData, images));
}
static Future<Map> nativeCamera(
MethodChannel channel, String authority) async {
return await channel
.invokeMethod("native_camera", {"authority": authority});
}
static Future<bool> quitPage(MethodChannel channel) async {
return await channel.invokeMethod("quit_page");
}
static Future<List> ios_album_path(
MethodChannel channel, List<String> path) async {
return await channel.invokeMethod("IOS_IMAGE_BY_PATH", path);
}
static Future<bool> playAlbumVideo(MethodChannel channel, String path) async {
return await channel.invokeMethod("play_album_video", path);
}
static Future<bool> previewImage(MethodChannel channel, String path) async {
return await channel.invokeMethod("PREVIEW_IMAGE", path);
}
}
class ScanImageItem {
String path;
String realPath;
String during;
bool isVideo;
int dataToken;
int size;
}