引入flutter_boost路由
This commit is contained in:
@@ -291,6 +291,7 @@ dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['oppo-mcssdk-2.0.2.jar'])
|
||||
// xplan flutter module
|
||||
implementation project(path: ':flutter')
|
||||
implementation project(path: ':flutter_boost')
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
@@ -1271,10 +1271,17 @@
|
||||
tools:remove="android:screenOrientation" />
|
||||
|
||||
<activity
|
||||
android:name="io.flutter.embedding.android.FlutterActivity"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:name="com.idlefish.flutterboost.containers.FlutterBoostActivity"
|
||||
android:theme="@style/Theme.AppCompat"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
android:windowSoftInputMode="adjustResize" >
|
||||
<meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable" android:resource="@drawable/bg_flutter_splash"/>
|
||||
|
||||
</activity>
|
||||
<meta-data android:name="flutterEmbedding"
|
||||
android:value="2">
|
||||
</meta-data>
|
||||
|
||||
</application>
|
||||
|
||||
|
@@ -23,6 +23,8 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.idlefish.flutterboost.FlutterBoost;
|
||||
import com.idlefish.flutterboost.containers.FlutterBoostFragment;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.netease.nim.uikit.api.model.contact.ContactEventListener;
|
||||
@@ -60,6 +62,7 @@ import com.yizhuan.erban.community.publish.view.PublishActivity;
|
||||
import com.yizhuan.erban.community.square.SquareFragment;
|
||||
import com.yizhuan.erban.family.view.activity.FamilyHomeActivity;
|
||||
import com.yizhuan.erban.home.fragment.ContactsListFragment;
|
||||
import com.yizhuan.erban.home.fragment.HomeFlutterFragment;
|
||||
import com.yizhuan.erban.home.fragment.HomeFragment;
|
||||
import com.yizhuan.erban.home.fragment.MeFragment;
|
||||
import com.yizhuan.erban.home.presenter.MainPresenter;
|
||||
@@ -238,9 +241,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_MSG, new ContactsListFragment());
|
||||
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_SQUARE, new SquareFragment());
|
||||
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_ME, new MeFragment());
|
||||
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_GAME, FlutterFragment
|
||||
.withCachedEngine("xplan_engine")
|
||||
.renderMode(RenderMode.texture)
|
||||
fragmentArray.put(MainTabLayout.MAIN_TAB_POS_GAME, new FlutterBoostFragment
|
||||
.CachedEngineFragmentBuilder(FlutterBoostFragment.class, FlutterBoost.ENGINE_ID)
|
||||
.url("/")
|
||||
.build());
|
||||
}
|
||||
|
||||
|
@@ -5,6 +5,7 @@ import android.annotation.TargetApi;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
@@ -24,6 +25,9 @@ import com.baidu.mobstat.StatService;
|
||||
import com.bumptech.glide.request.target.ViewTarget;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.huawei.hms.support.common.ActivityMgr;
|
||||
import com.idlefish.flutterboost.FlutterBoost;
|
||||
import com.idlefish.flutterboost.FlutterBoostDelegate;
|
||||
import com.idlefish.flutterboost.containers.FlutterBoostActivity;
|
||||
import com.ishumei.smantifraud.SmAntiFraud;
|
||||
import com.llew.huawei.verifier.LoadedApkHuaWei;
|
||||
import com.microquation.linkedme.android.LinkedME;
|
||||
@@ -104,9 +108,11 @@ import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivityLaunchConfigs;
|
||||
import io.flutter.embedding.engine.FlutterEngine;
|
||||
import io.flutter.embedding.engine.FlutterEngineCache;
|
||||
import io.flutter.embedding.engine.dart.DartExecutor;
|
||||
@@ -251,13 +257,26 @@ public class XChatApplication extends Application {
|
||||
}
|
||||
dealHuaWeiCrash();
|
||||
|
||||
FlutterEngine flutterEngine = new FlutterEngine(this);
|
||||
flutterEngine.getDartExecutor().executeDartEntrypoint(
|
||||
DartExecutor.DartEntrypoint.createDefault()
|
||||
);
|
||||
FlutterEngineCache
|
||||
.getInstance()
|
||||
.put("xplan_engine", flutterEngine);
|
||||
FlutterBoost.instance().setup(this, new FlutterBoostDelegate() {
|
||||
|
||||
@Override
|
||||
public void pushNativeRoute(String pageName, HashMap<String, String> arguments) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pushFlutterRoute(String pageName, String uniqueId, HashMap<String, String> arguments) {
|
||||
Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class, FlutterBoost.ENGINE_ID)
|
||||
.backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
|
||||
.destroyEngineWithActivity(false)
|
||||
.url(pageName)
|
||||
.urlParams(arguments)
|
||||
.build(FlutterBoost.instance().currentActivity());
|
||||
FlutterBoost.instance().currentActivity().startActivity(intent);
|
||||
}
|
||||
}, engine->{
|
||||
engine.getPlugins();
|
||||
} );
|
||||
|
||||
LogUtils.d("init time = " +(System.currentTimeMillis() - startTime) +"ms");
|
||||
}
|
||||
|
@@ -0,0 +1,31 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.idlefish.flutterboost.containers.FlutterBoostFragment;
|
||||
|
||||
public class HomeFlutterFragment extends FlutterBoostFragment {
|
||||
|
||||
private String uniqueId;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
return super.onCreateView(inflater, container, savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHiddenChanged(boolean hidden) {
|
||||
super.onHiddenChanged(hidden);
|
||||
}
|
||||
}
|
@@ -5,6 +5,7 @@ import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
|
||||
import com.idlefish.flutterboost.FlutterBoost;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
@@ -33,7 +34,7 @@ public class LabActivity extends BaseActivity {
|
||||
findViewById(R.id.rb_h5_test).setOnClickListener(v -> CommonWebViewActivity.start(context, "http://192.168.10.7:5503/"));
|
||||
//vue测试地址
|
||||
findViewById(R.id.rb_vue_test).setOnClickListener(v -> CommonWebViewActivity.start(context, "http://192.168.10.7:8080/"));
|
||||
findViewById(R.id.rb_flutter_test).setOnClickListener(v -> startActivity(FlutterActivity.withCachedEngine("xplan_engine").build(context)));
|
||||
findViewById(R.id.rb_flutter_test).setOnClickListener(v -> FlutterBoost.instance().open("/", null));
|
||||
int enviroment = CommonPref.instance(BasicConfig.INSTANCE.getAppContext()).getInt(Env.KEY_ENVIRONMENT);
|
||||
//根据ID找到RadioGroup实例
|
||||
RadioGroup group = (RadioGroup) this.findViewById(R.id.radioGroup);
|
||||
|
6
app/src/main/res/drawable/bg_flutter_splash.xml
Normal file
6
app/src/main/res/drawable/bg_flutter_splash.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:drawable="@color/color_1c1b22"
|
||||
android:gravity="fill" />
|
||||
</layer-list>
|
@@ -3,8 +3,6 @@ include ':core'
|
||||
include ':library'
|
||||
include ':nim_uikit'
|
||||
// 添加 flutter module 依赖
|
||||
setBinding(new Binding([gradle: this]))// new
|
||||
evaluate(new File( // new
|
||||
settingsDir.parentFile, // new
|
||||
'accompany-android/xplan-flutter/.android/include_flutter.groovy' // new
|
||||
))
|
||||
setBinding(new Binding([gradle: this]))
|
||||
evaluate(new File(settingsDir.parentFile,
|
||||
'accompany-android/xplan-flutter/.android/include_flutter.groovy'))
|
Submodule xplan-flutter updated: 56db6f3e62...a9508182ce
Reference in New Issue
Block a user