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;
|
}
|
|
}
|