admin
2022-05-11 f19071bd5e0007fc823f99cdfa0196391827da1e
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();