flutter_boost [Bug]: release模式下,Android冷启动应用,设置根路由为flutter页面,第一个页面灰屏

3bygqnnd  于 8个月前  发布在  Flutter
关注(0)|答案(6)|浏览(118)

请描述遇到的问题,以及您所期望的正确的结果

release模式下,Android冷启动应用,设置根路由为flutter页面,第一个页面灰屏

请说明如何操作会遇到上述问题

android冷启动应用

在下面填入关键复现代码

'/': (settings, uniqueId) {
return CupertinoPageRoute(
settings: settings,
builder: (_) {
return SplashPage();
});
},

复现的平台

Android

Flutter SDK版本

3.16.4

FlutterBoost版本

5.0.1

是否延迟初始化FlutterBoost

No

解决方案

js4nwp54

js4nwp541#

试试不会要用根路由‘/’,用其他路由来当第一个页面

yb3bgrhw

yb3bgrhw2#

试试不会要用根路由‘/’,用其他路由来当第一个页面

我的第一个页面是flutter页面,不能设置“/”,要怎么搞啊?

n53p2ov0

n53p2ov03#

启动Flutter页面时,直接传另外的路由啊。比如定义'splash_page':

  1. 'splash_page': (settings, uniqueId) {
  2. return CupertinoPageRoute(
  3. settings: settings,
  4. builder: (_) {
  5. return SplashPage();
  6. });
  7. },

然后启动FlutterBoostActivity时,设置 splash_page 路由:

  1. Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
  2. .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
  3. .destroyEngineWithActivity(false)
  4. .url("splash_page")
  5. .urlParams(params)
  6. .build(this);
  7. startActivity(intent);
展开查看全部
acruukt9

acruukt94#

启动的Launcher是Flutter页面,就把Launcher继承FlutterBoostActivity,重写getUrl方法,返回"splash_page"

vc6uscn9

vc6uscn95#

启动Flutter页面时,直接传另外的路由啊。比如定义'splash_page':

  1. 'splash_page': (settings, uniqueId) {
  2. return CupertinoPageRoute(
  3. settings: settings,
  4. builder: (_) {
  5. return SplashPage();
  6. });
  7. },

然后启动FlutterBoostActivity时,设置 splash_page 路由:

  1. Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
  2. .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
  3. .destroyEngineWithActivity(false)
  4. .url("splash_page")
  5. .urlParams(params)
  6. .build(this);
  7. startActivity(intent);

这种方式能解决首次空路由的问题,不过在跳转的时候会有一定的时间差(黑屏),还有就是后台放置久了,应用黑屏了

展开查看全部
nnt7mjpx

nnt7mjpx6#

遇到了同样的问题,查了很久了

相关问题