From f19071bd5e0007fc823f99cdfa0196391827da1e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 11 五月 2022 18:46:35 +0800
Subject: [PATCH] 'android项目完善'

---
 src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java |  173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 170 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java b/src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java
index feff1ac..2828217 100644
--- a/src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java
+++ b/src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java
@@ -2,18 +2,47 @@
 
 import android.app.Application;
 import android.content.Context;
+import android.content.Intent;
 
 import com.bytedance.sdk.dp.DPSdkConfig;
 import com.bytedance.sdk.openadsdk.TTAdSdk;
+import com.demo.R;
+import com.demo.app.entity.eventbus.UpdateConfig;
+import com.demo.app.utils.AppConfigUtil;
 import com.demo.app.utils.Constant;
+import com.demo.app.utils.SettingUtil;
 import com.demo.app.utils.UserUtil;
+import com.demo.app.utils.api.HttpApiUtil;
+import com.demo.app.utils.ui.JumpPageUtil;
+import com.demo.lib.common.util.ManifestDataUtil;
 import com.demo.library_ad.AdUtil;
 import com.demo.library_dp.DPUtil;
-import com.demo.lib.common.util.ManifestDataUtil;
+import com.demo.library_flutter.FlutterCommonActivity;
+import com.demo.library_flutter.message.AdMethodChannel;
+import com.demo.library_flutter.message.DataMethodChannel;
+import com.demo.library_flutter.message.UIMethodChannel;
+import com.demo.library_flutter.nativeview.CSJExpressNativeViewFactory;
+import com.demo.library_flutter.nativeview.GDTExpressNativeViewFactory;
+import com.idlefish.flutterboost.FlutterBoost;
+import com.idlefish.flutterboost.FlutterBoostDelegate;
+import com.idlefish.flutterboost.FlutterBoostRouteOptions;
+import com.idlefish.flutterboost.FlutterBoostSetupOptions;
+import com.idlefish.flutterboost.containers.FlutterBoostActivity;
 import com.umeng.analytics.MobclickAgent;
 import com.umeng.commonsdk.UMConfigure;
 
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 import androidx.multidex.MultiDex;
+import cn.jpush.android.api.JPushInterface;
+import io.flutter.Log;
+import io.flutter.embedding.android.FlutterActivityLaunchConfigs;
+import io.flutter.plugin.common.StandardMessageCodec;
+import io.flutter.plugin.platform.PlatformViewRegistry;
 
 public class MyApplication extends Application {
     public static MyApplication application = null;
@@ -54,9 +83,16 @@
         initAd(application, initListener);
 
         //灏忚
-        initNovel(application);
+//        initNovel(application);
         //绌垮北鐢插皬瑙嗛
-        initDPSDK(application);
+//        initDPSDK(application);
+
+        initFlutter(application);
+
+        //鍒濆鍖栨帹閫�
+        JPushInterface.setDebugMode(true);
+        JPushInterface.init(application);
+
     }
 
 
@@ -107,6 +143,137 @@
         }
     }
 
+    public static void initFlutter(Application application) {
+
+        FlutterBoostSetupOptions options = new FlutterBoostSetupOptions.Builder().build();
+        FlutterBoost.instance().setup(application, new FlutterBoostDelegate() {
+            @Override
+            public void pushNativeRoute(FlutterBoostRouteOptions options) {
+                Log.i(TAG, "pushNativeRoute");
+//                options.arguments()
+                //杩欓噷鏍规嵁options.pageName鏉ュ垽鏂綘鎯宠烦杞摢涓〉闈紝杩欓噷绠�鍗曠粰涓�涓�
+//                Intent intent = new Intent(FlutterBoost.instance().currentActivity(), FlutterCommonActivity.class);
+//                intent.putExtra("pageRoute", options.pageName());
+//                FlutterBoost.instance().currentActivity().startActivityForResult(intent, options.requestCode());
+
+                Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterCommonActivity.class)
+                        .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.transparent)
+                        .destroyEngineWithActivity(false)
+                        .uniqueId(options.uniqueId())
+                        .url(options.pageName())
+                        .urlParams(options.arguments())
+                        .build(FlutterBoost.instance().currentActivity());
+                FlutterBoost.instance().currentActivity().startActivity(intent);
+            }
+
+            @Override
+            public void pushFlutterRoute(FlutterBoostRouteOptions options) {
+                Log.i(TAG, "pushFlutterRoute");
+                Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
+                        .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.transparent)
+                        .destroyEngineWithActivity(false)
+                        .uniqueId(options.uniqueId())
+                        .url(options.pageName())
+                        .urlParams(options.arguments())
+                        .build(FlutterBoost.instance().currentActivity());
+                FlutterBoost.instance().currentActivity().startActivity(intent);
+            }
+
+            @Override
+            public boolean popRoute(FlutterBoostRouteOptions options) {
+                Log.i(TAG, "popRoute");
+                return false;
+            }
+        }, engine -> {
+            PlatformViewRegistry registry = engine.getPlatformViewsController().getRegistry();
+            registry.registerViewFactory("ad-csj-express-view", new CSJExpressNativeViewFactory(engine.getDartExecutor().getBinaryMessenger(), StandardMessageCodec.INSTANCE));
+            registry.registerViewFactory("ad-gdt-express-view", new GDTExpressNativeViewFactory(engine.getDartExecutor().getBinaryMessenger(), StandardMessageCodec.INSTANCE));
+
+            //鏁版嵁鎺ュ彛
+            new DataMethodChannel(engine.getDartExecutor().getBinaryMessenger(), application.getApplicationContext(), new DataMethodChannel.DataListener() {
+                @Override
+                public Map<String, String> getBaseRequestParams(Map<String, String> params) {
+                    LinkedHashMap<String, String> ps = new LinkedHashMap<>();
+                    if (params != null)
+                        for (Iterator<String> its = params.keySet().iterator(); its.hasNext(); ) {
+                            String key = its.next();
+                            if (params.get(key) != null) {
+                                ps.put(key, params.get(key).toString());
+                            }
+                        }
+                    return HttpApiUtil.getRequestParams(application.getApplicationContext(), ps);
+                }
+
+                @Override
+                public String getConfig(String key) {
+                    AppConfigUtil.ConfigKey configKey = null;
+                    try {
+                        configKey = AppConfigUtil.ConfigKey.valueOf(key);
+                    } catch (Exception e) {
+
+                    }
+                    if (configKey == null) {
+                        EventBus.getDefault().post(new UpdateConfig());
+                        return null;
+                    }
+                    return AppConfigUtil.getConfig(configKey, application);
+                }
+
+                @Override
+                public Boolean getSetting(String key) {
+                    SettingUtil.SettingKey settingKey = null;
+                    try {
+                        settingKey = SettingUtil.SettingKey.valueOf(key);
+                    } catch (Exception e) {
+
+                    }
+                    if (settingKey == null) {
+                        return null;
+                    }
+                    return SettingUtil.getSetting(settingKey, application);
+                }
+
+                @Override
+                public void setSetting(String key, boolean b) {
+
+                    SettingUtil.SettingKey settingKey = null;
+                    try {
+                        settingKey = SettingUtil.SettingKey.valueOf(key);
+                    } catch (Exception e) {
+
+                    }
+                    if (settingKey == null) {
+                        return;
+                    }
+
+
+                    SettingUtil.saveSetting(settingKey, b, application);
+                }
+            });
+            //UI鎺ュ彛
+            new UIMethodChannel(engine.getDartExecutor().getBinaryMessenger(), application.getApplicationContext(), new UIMethodChannel.DataListener() {
+                @Override
+                public boolean isStatusBarDefaultLight() {
+                    return true;
+                }
+
+                @Override
+                public void jumpAppPage(String type, Map<String, Object> params) {
+                    //璺宠浆搴旂敤鍒楄〃
+                    if (JumpPageUtil.AppJumpType.valueOf(type) == null) {
+                        //鏈煡璺宠浆绫诲瀷
+                        return;
+                    }
+                    JumpPageUtil.jump(JumpPageUtil.AppJumpType.valueOf(type), params, FlutterBoost.instance().currentActivity());
+                }
+            });
+//            //骞垮憡鎺ュ彛
+            new AdMethodChannel(engine.getDartExecutor().getBinaryMessenger(), application.getApplicationContext(), new AdMethodChannel.DataListener() {
+
+            });
+        }, options);
+    }
+
 
     public interface InitListener {
         public void onFinish();

--
Gitblit v1.8.0