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

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

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

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':

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

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

Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
                    .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
                    .destroyEngineWithActivity(false)
                    .url("splash_page")
                    .urlParams(params)
                    .build(this);
            startActivity(intent);
acruukt9

acruukt94#

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

vc6uscn9

vc6uscn95#

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

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

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

Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class)
                    .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
                    .destroyEngineWithActivity(false)
                    .url("splash_page")
                    .urlParams(params)
                    .build(this);
            startActivity(intent);

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

nnt7mjpx

nnt7mjpx6#

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

相关问题