From 36754ba47da7a3277d5be183a523c912a1dc4cef Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 31 三月 2022 15:07:08 +0800
Subject: [PATCH] service服务bug修复

---
 src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 114 insertions(+), 2 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..0671d7c 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,19 +1,51 @@
 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.app.utils.Constant;
 import com.demo.app.utils.UserUtil;
+import com.demo.app.utils.api.HttpApiUtil;
+import com.demo.lib.common.util.ui.MyActivityManager;
 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 java.util.ArrayList;
+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 io.flutter.Log;
+import io.flutter.app.FlutterApplication;
+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;
 
 public class MyApplication extends Application {
     public static MyApplication application = null;
@@ -54,9 +86,11 @@
         initAd(application, initListener);
 
         //灏忚
-        initNovel(application);
+//        initNovel(application);
         //绌垮北鐢插皬瑙嗛
-        initDPSDK(application);
+//        initDPSDK(application);
+
+        initFlutter(application);
     }
 
 
@@ -107,6 +141,84 @@
         }
     }
 
+    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, Object> getBaseRequestParams(Map<String, Object> 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());
+                            }
+                        }
+                    HttpApiUtil.getRequestParams(application.getApplicationContext(), ps);
+                    return null;
+                }
+            });
+            //UI鎺ュ彛
+            new UIMethodChannel(engine.getDartExecutor().getBinaryMessenger(), application.getApplicationContext(), new UIMethodChannel.DataListener() {
+                @Override
+                public boolean isStatusBarDefaultLight() {
+                    return true;
+                }
+            });
+//            //骞垮憡鎺ュ彛
+            new AdMethodChannel(engine.getDartExecutor().getBinaryMessenger(), application.getApplicationContext(), new AdMethodChannel.DataListener() {
+
+            });
+
+
+        }, options);
+    }
+
 
     public interface InitListener {
         public void onFinish();

--
Gitblit v1.8.0