admin
2022-03-12 222df7b655c51992580b832f5e06c6772d27d9d6
src/main/resources/code/android/app/src/main/java/com/demo/app/MyApplication.java
@@ -1,19 +1,47 @@
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.containers.FlutterBoostActivity;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
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.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;
@@ -57,6 +85,8 @@
        initNovel(application);
        //穿山甲小视频
        initDPSDK(application);
        initFlutter(application);
    }
@@ -107,6 +137,64 @@
        }
    }
    public static void initFlutter(Application application) {
        FlutterBoost.instance().setup(application, new FlutterBoostDelegate() {
            @Override
            public void pushNativeRoute(FlutterBoostRouteOptions options) {
                //这里根据options.pageName来判断你想跳转哪个页面,这里简单给一个
                Intent intent = new Intent(FlutterBoost.instance().currentActivity(), FlutterCommonActivity.class);
                FlutterBoost.instance().currentActivity().startActivityForResult(intent, options.requestCode());
            }
            @Override
            public void pushFlutterRoute(FlutterBoostRouteOptions options) {
                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);
            }
        }, 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() {
            });
        });
    }
    public interface InitListener {
        public void onFinish();