package com.demo.library_flutter.message; import android.content.Context; import android.content.SharedPreferences; import com.alibaba.fastjson.JSONObject; import java.util.Map; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.JSONUtil; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodCodec; import io.flutter.plugin.common.StandardMessageCodec; import io.flutter.plugin.common.StandardMethodCodec; public class DataMethodChannel extends MethodChannel { public DataMethodChannel(BinaryMessenger messenger, Context context, DataListener dataListener) { super(messenger, "com.yeshi.video/data", StandardMethodCodec.INSTANCE); setMethodCallHandler(new MethodCallHandler() { @Override public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { switch (call.method) { case "setSharedValue": { String key = call.argument("key"); String value = call.argument("value"); SharedPreferences sharedPreferences = context.getSharedPreferences("flutter", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(key, value); editor.commit(); result.success("1"); } break; case "getSharedValue": { SharedPreferences sharedPreferences = context.getSharedPreferences("flutter", Context.MODE_PRIVATE); result.success(sharedPreferences.getString(call.arguments + "", "")); } break; case "removeSharedValue": { SharedPreferences sharedPreferences = context.getSharedPreferences("flutter", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.remove(call.arguments + ""); editor.commit(); result.success("1"); } break; case "getAdConfig": SharedPreferences sharedPreferences = context.getSharedPreferences("flutter", Context.MODE_PRIVATE); result.success(sharedPreferences.getString("adConfig", "")); break; case "getConfig": { String key = call.arguments + ""; String value = dataListener.getConfig(key); result.success(value); } break; case "getSetting": { String key = call.arguments + ""; Boolean value = dataListener.getSetting(key); result.success(value); } break; case "setSetting": { Map params = (Map) call.arguments; String key = params.get("key") + ""; boolean value = (Boolean) params.get("value"); dataListener.setSetting(key, value); result.success(true); } break; case "getBaseRequestParams": //获取请求参数 Map params = (Map) call.arguments; params = dataListener.getBaseRequestParams(params); //转json返回 result.success(JSONObject.toJSON(params)); break; } } }); } public interface DataListener { public Map getBaseRequestParams(Map params); public String getConfig(String key); //获取设置 public Boolean getSetting(String key); //设置 public void setSetting(String key, boolean b); } }