| | |
| | | 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; |
| | |
| | | initNovel(application); |
| | | //穿山甲小视频 |
| | | initDPSDK(application); |
| | | |
| | | initFlutter(application); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | 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(); |