admin
2021-12-03 f092e392700f68cdbfc545c9801f530d19fd39fa
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
package com.yeshi.location.plugins;
 
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.os.Build;
import android.util.Log;
 
import com.yeshi.location.utils.ShareImageUtil;
 
import java.io.File;
import java.util.ArrayList;
 
import androidx.core.content.FileProvider;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
 
public class ShareFlutterPlugins implements MethodChannel.MethodCallHandler {
    public static String CHANNEL = "com.yeshi.location/share";  // 分析1
 
    static MethodChannel channel;
 
    private Activity activity;
 
    private ShareFlutterPlugins(Activity activity) {
        this.activity = activity;
    }
 
    public static void registerWith(Activity activity, BinaryMessenger messager) {
        channel = new MethodChannel(messager, CHANNEL);
        ShareFlutterPlugins instance = new ShareFlutterPlugins(activity);
        channel.setMethodCallHandler(instance);
 
        
    }
 
    @Override
    public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {  // 分析 2
        String method = methodCall.method;
        switch (method) {
            case "shareImg":
                String platform=methodCall.argument("platform");
                String path = methodCall.argument("path");
                ArrayList<Uri> uris = new ArrayList<>();
                uris.add(getUriForFile(activity,new File(path)));
                Log.i("ShareFlutterPlugins",platform);
                switch(platform){
                    case "qq":
                        ShareImageUtil.shareQQPictureByIntent(activity, uris);
                        break;
                    case "wx":
                        ShareImageUtil.shareWXPictureByIntent(activity, uris);
                        break;
                    case "sina":
                        ShareImageUtil.shareSinaPictureByIntent(activity, uris);
                        break;
                }
                result.success(true);
                break;
            default:
                result.notImplemented();
        }
    }
 
    private static Uri getUriForFile(Context context, File file) {
        if (context == null || file == null) {
            throw new NullPointerException();
        }
        Uri uri;
        if (Build.VERSION.SDK_INT >= 24) {
            uri = FileProvider.getUriForFile(context.getApplicationContext(), "com.yeshi.location.fileprovider", file);
        } else {
            uri = Uri.fromFile(file);
        }
        return uri;
    }
 
}