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 |  121 +++++++++++++++++++++++++++++++++-------
 1 files changed, 100 insertions(+), 21 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 a8d56f7..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
@@ -1,21 +1,22 @@
 package com.demo.app;
 
-import android.Manifest;
-import android.app.Activity;
 import android.app.Application;
 import android.content.Context;
 import android.content.Intent;
-import android.os.Bundle;
 
 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.lib.common.util.ui.MyActivityManager;
+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;
@@ -25,21 +26,21 @@
 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.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.multidex.MultiDex;
+import cn.jpush.android.api.JPushInterface;
+import io.flutter.Log;
 import io.flutter.embedding.android.FlutterActivityLaunchConfigs;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugin.common.MethodCall;
-import io.flutter.plugin.common.MethodChannel;
 import io.flutter.plugin.common.StandardMessageCodec;
 import io.flutter.plugin.platform.PlatformViewRegistry;
 
@@ -82,11 +83,16 @@
         initAd(application, initListener);
 
         //灏忚
-        initNovel(application);
+//        initNovel(application);
         //绌垮北鐢插皬瑙嗛
-        initDPSDK(application);
+//        initDPSDK(application);
 
         initFlutter(application);
+
+        //鍒濆鍖栨帹閫�
+        JPushInterface.setDebugMode(true);
+        JPushInterface.init(application);
+
     }
 
 
@@ -139,16 +145,30 @@
 
     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);
-                FlutterBoost.instance().currentActivity().startActivityForResult(intent, options.requestCode());
+//                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)
@@ -158,6 +178,12 @@
                         .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));
@@ -166,7 +192,7 @@
             //鏁版嵁鎺ュ彛
             new DataMethodChannel(engine.getDartExecutor().getBinaryMessenger(), application.getApplicationContext(), new DataMethodChannel.DataListener() {
                 @Override
-                public Map<String, Object> getBaseRequestParams(Map<String, Object> params) {
+                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(); ) {
@@ -175,8 +201,53 @@
                                 ps.put(key, params.get(key).toString());
                             }
                         }
-                    HttpApiUtil.getRequestParams(application.getApplicationContext(), ps);
-                    return null;
+                    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鎺ュ彛
@@ -185,14 +256,22 @@
                 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);
     }
 
 

--
Gitblit v1.8.0