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